Commit Graph

70 Commits

Author SHA1 Message Date
Tom Alexander
c9d7251e3b
Begin removing the MyError type. 2023-10-17 09:45:18 -04:00
Tom Alexander
3069711447
Apply more suggestions. 2023-10-16 18:29:21 -04:00
Tom Alexander
547fc40dbe
No measurable performance improvement with native builds over LTO release builds.
Some checks failed
rustfmt Build rustfmt has succeeded
rust-foreign-document-test Build rust-foreign-document-test has failed
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
Leaving the code for this commented out because it involved an unstable cargo feature without showing any benefit. I would like to revisit this later.
2023-10-16 15:21:36 -04:00
Tom Alexander
18d0676fad
Clean up. 2023-10-16 15:03:23 -04:00
Tom Alexander
7833a58461
Apply a similar optimization to the detect element parser but also unify detection of affiliated keywords. 2023-10-16 14:55:40 -04:00
Tom Alexander
e7c3c7aab6
Switch the keyword parsers over to using the settings from GlobalSettings. 2023-10-15 15:17:08 -04:00
Tom Alexander
b9c638c280
Fix tracing.
Some checks failed
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has failed
rust-foreign-document-test Build rust-foreign-document-test has failed
rust-test Build rust-test has succeeded
2023-10-14 19:02:35 -04:00
Tom Alexander
c039e0d62c
Keywords without affiliated keywords should be lower priority than paragraphs with affiliated keywords. 2023-10-12 17:32:29 -04:00
Tom Alexander
e6e3783ec6
Support parsing affiliated keywords as keywords. 2023-10-12 17:23:54 -04:00
Tom Alexander
5ae19e455d
Remove unused imports. 2023-10-12 17:14:18 -04:00
Tom Alexander
f475754a71
Port the rest of the element parsers over. 2023-10-12 17:12:55 -04:00
Tom Alexander
767f44f94d
Port comment. 2023-10-12 16:52:49 -04:00
Tom Alexander
1411aca7b5
Port footnote definition. 2023-10-12 16:48:50 -04:00
Tom Alexander
9ccdcaac24
Port dynamic block. 2023-10-12 16:46:15 -04:00
Tom Alexander
d1223dcdb7
Port paragraph parser to use ak_element. 2023-10-12 16:37:31 -04:00
Tom Alexander
59448a4f2c
Port greater blocker over to ak_element!(). 2023-10-12 16:27:57 -04:00
Tom Alexander
8654cf5507
Fully port over the first parser. 2023-10-12 16:09:35 -04:00
Tom Alexander
6ca4dc8ffc
Add a macro for calling parsers that take in the affiliated keywords. 2023-10-12 16:06:59 -04:00
Tom Alexander
a6f36ba679
Create a template for new element functions that will take in the affiliated keywords instead of re-parsing them multiple times. 2023-10-12 15:47:06 -04:00
Tom Alexander
176e37874e
Remove the parser to parse affiliated keywords as regular keywords. 2023-10-12 15:25:26 -04:00
Tom Alexander
47a440147f
Fix formatting.
Some checks failed
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has failed
rust-foreign-document-test Build rust-foreign-document-test has failed
2023-10-09 19:52:32 -04:00
Tom Alexander
df4daa0e16
Do not include context in tracing. 2023-10-09 18:02:36 -04:00
Tom Alexander
758e224e6d
Move consuming trailing element whitespace inside the parsers.
This ensures the parsers can take into account the affiliated keywords when setting their source without needing the SetSource trait.
2023-10-06 12:02:14 -04:00
Tom Alexander
343af41f78
Separate babel call out to its own parser. 2023-10-05 16:27:36 -04:00
Tom Alexander
e21701b97c
Cleanup. 2023-10-05 02:26:11 -04:00
Tom Alexander
ef8a6884fe
Remove outdated TODO. 2023-10-05 02:20:25 -04:00
Tom Alexander
65eda08843
Re-work the element parser to handle affiliated keywords before elements that cannot have affiliated keywords. 2023-10-04 22:47:13 -04:00
Tom Alexander
786521ad4a
Add affiliated keyword matching to the detect_* functions. 2023-10-04 21:03:32 -04:00
Tom Alexander
d8102b7bc2
Move the affiliated keywords parser inside the specific element parsers.
We need access to the affiliated keywords to do things like set the name of the element, and only half the element parsers are allowed to have affiliated keywords, so it makes sense to move it inside the specific parsers.
2023-10-04 20:55:48 -04:00
Tom Alexander
a26640355c
Add check for name on paragraph. 2023-10-04 19:58:09 -04:00
Tom Alexander
2352636672
Split GreaterBlock into CenterBlock, QuoteBlock, and SpecialBlock.
Center and quote blocks do not have parameters nor do they store their name so I am separating them out.
2023-10-02 22:33:00 -04:00
Tom Alexander
f9460b88d7
Add a TODO for a performance optimization. 2023-09-24 01:59:26 -04:00
Tom Alexander
33372429dd
Add a config option for org-list-allow-alphabetical.
This fixes an issue where lines in a paragraph were incorrectly getting identified as lists because I had defaulted to assuming alphabetical bullets were allowed.
2023-09-14 00:27:54 -04:00
Tom Alexander
84953c1669
Put back in needed pubs. 2023-09-11 14:59:23 -04:00
Tom Alexander
7650a9edff
Remove all pub. 2023-09-11 13:11:08 -04:00
Tom Alexander
f54081437a
Add detect element functions for all elements that can be reasonably detected more efficiently than just parsing normally. 2023-09-11 12:28:15 -04:00
Tom Alexander
6e2fc362ea
Add support for babel-call keywords. 2023-09-06 18:04:53 -04:00
Tom Alexander
df79cbd0b7
Give global options their own lifetime. 2023-09-03 16:22:40 -04:00
Tom Alexander
3bdb24ad88
Fixing more errors. 2023-09-03 12:23:18 -04:00
Tom Alexander
74a6101de7
Update RefContext to three lifetimes. 2023-09-02 22:45:46 -04:00
Tom Alexander
564104f1e8
Switch to RefContext. 2023-09-02 19:16:44 -04:00
Tom Alexander
eabffe5ecc
Move over the rest of the types. 2023-09-02 19:08:01 -04:00
Tom Alexander
67f79aeb51
Remove context from detect plain list.
All checks were successful
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
2023-08-31 18:53:28 -04:00
Tom Alexander
1bcd1895c0
Allow affiliating keywords with regular keywords. 2023-08-29 17:19:13 -04:00
Tom Alexander
9df40fb13f
Only allow specific keywords for affiliated keywords. 2023-08-29 16:56:07 -04:00
Tom Alexander
9c1e6ccc97
Add a detect_element function.
All checks were successful
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
This is an optimization. When you have something like plain text which ends when it hits the next element, we only need to parse enough to detect that an element is about to occur. For elements like plain lists, this is as simple as parsing a line starting with optional whitespace and then a bullet, which avoids parsing the entire plain list tree. The benefit is most noticeable in deeply nested plain lists.
2023-08-25 01:07:53 -04:00
Tom Alexander
dab598e5e7
Convert all functions to using the wrapped input type.
Some checks failed
rust-test Build rust-test has failed
rust-build Build rust-build has failed
2023-08-24 16:06:29 -04:00
Tom Alexander
cd1b4ba785
Make the tracing macros optional. 2023-08-10 20:22:34 -04:00
Tom Alexander
0ca6ce504f
Simulate trailing whitespace in empty greater blocks just like drawers. 2023-04-22 21:45:18 -04:00
Tom Alexander
0b3f414ecf
Get tracing back into the element parser. 2023-04-22 19:15:29 -04:00