Commit Graph

1505 Commits

Author SHA1 Message Date
Tom Alexander
01464057ad
Remove unused event types. 2023-10-17 13:43:33 -04:00
Tom Alexander
0208020e3e
Also print byte offset.
Some checks failed
clippy Build clippy has failed
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
2023-10-17 13:35:40 -04:00
Tom Alexander
a2f53361eb
Record element start events and report them when the event_count feature is enabled. 2023-10-17 13:32:01 -04:00
Tom Alexander
17db05c2c7
Unify more error handling. 2023-10-17 12:42:34 -04:00
Tom Alexander
6139ea328d
Unify some more error handling. 2023-10-17 12:22:52 -04:00
Tom Alexander
d20b4a410b
Remove pointless map_err calls. 2023-10-17 11:56:36 -04:00
Tom Alexander
05c64f53b1
Remove boxed error from CustomError. 2023-10-17 11:40:11 -04:00
Tom Alexander
f65d0bb82d
Remove redundant call to space0. 2023-10-17 11:33:26 -04:00
Tom Alexander
50d2831081
Cleanup. 2023-10-17 11:30:23 -04:00
Tom Alexander
bc9bd4f97b
Eliminate some closures. 2023-10-17 11:10:18 -04:00
Tom Alexander
369d3e8c50
Add a full-document parse benchmark. 2023-10-17 10:57:04 -04:00
Tom Alexander
f59f153ee7
Clean up. 2023-10-17 10:39:21 -04:00
Tom Alexander
20c4a0f8f7
Continue removing MyError. 2023-10-17 10:35:33 -04:00
Tom Alexander
e776a051ad
Continue removing MyError. 2023-10-17 10:13:00 -04:00
Tom Alexander
77e6c22ad8
Continue removing MyError. 2023-10-17 10:09:37 -04:00
Tom Alexander
c9d7251e3b
Begin removing the MyError type. 2023-10-17 09:45:18 -04:00
Tom Alexander
8417b5fc9d
Add an owned string entry for CustomError. 2023-10-17 09:27:15 -04:00
Tom Alexander
e2d55e13d3
Fix some clippy errors that didn't appear on my host version of clippy.
Some checks failed
rust-foreign-document-test Build rust-foreign-document-test has failed
clippy Build clippy has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
2023-10-16 19:43:15 -04:00
Tom Alexander
9a4d290cf8
Apply more suggestions. 2023-10-16 19:12:25 -04:00
Tom Alexander
acd24d6198
Apply more suggestions. 2023-10-16 19:02:34 -04:00
Tom Alexander
880b00ef3f
Apply more suggestions. 2023-10-16 18:54:41 -04:00
Tom Alexander
3069711447
Apply more suggestions. 2023-10-16 18:29:21 -04:00
Tom Alexander
4b6c717812
Apply more suggestions. 2023-10-16 17:58:52 -04:00
Tom Alexander
1d329cc310
Apply more suggestions. 2023-10-16 17:28:28 -04:00
Tom Alexander
b4f9a3b9b6
Apply more suggestions. 2023-10-16 17:14:44 -04:00
Tom Alexander
2dd5246506
Apply more suggestions. 2023-10-16 17:03:39 -04:00
Tom Alexander
4ba0e3611b
Apply more suggestions. 2023-10-16 17:03:39 -04:00
Tom Alexander
728f79b86c
Apply more suggestions. 2023-10-16 17:03:39 -04:00
Tom Alexander
192a4a2891
Remove unnecessary lifetimes. 2023-10-16 17:03:39 -04:00
Tom Alexander
f10efec21d
No performance change switching affiliated_key to using element macro. 2023-10-16 15:57:18 -04:00
Tom Alexander
72b4cf8e71
Add the first use of the rust benchmark tests. 2023-10-16 15:50:08 -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-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has failed
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
0020d71089
Extend that optimization to more object parsers. 2023-10-16 14:41:12 -04:00
Tom Alexander
cfdf39d1fa
Significantly reduce the use of closures in the object parsers. 2023-10-16 14:25:02 -04:00
Tom Alexander
3eff85059a
Add support for planning before property drawer when calculating additional properties for headlines. 2023-10-16 13:35:03 -04:00
Tom Alexander
c86d1000c0
Do not clear values in lists of strings.
Some checks failed
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has failed
rust-build Build rust-build has succeeded
This is a hold-over from when I had list of single string which was a misunderstanding of the optional pair type.
2023-10-16 12:58:20 -04:00
Tom Alexander
911634cb42
Attr_ affiliated keywords should be lists of strings. 2023-10-16 12:55:18 -04:00
Tom Alexander
0aa746fb1e
Implement comparison for object tree. 2023-10-16 12:50:53 -04:00
Tom Alexander
33800c4a88
Implement comparison for optional pair. 2023-10-16 12:05:36 -04:00
Tom Alexander
909ccadfa1
Beginning update to compare_affiliated_keywords. 2023-10-16 11:45:54 -04:00
Tom Alexander
e352deb989
Update parse_affiliated_keywords for handling optional pairs. 2023-10-16 11:42:20 -04:00
Tom Alexander
f5a6a26c43
Disable the existing handling of affiliated keywords. 2023-10-15 20:31:14 -04:00
Tom Alexander
f5dcacc79d
Do not match keyword name if a longer keyword name would match. 2023-10-15 15:55:19 -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
d2d8c1ffcf
Fix build for compare with tracing. 2023-10-14 19:20:49 -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
ad5efc4b0f
Only require sync on FileAccessInterface when compiling for compare utilities.
Some checks failed
rust-test Build rust-test has failed
rust-build Build rust-build has failed
rust-foreign-document-test Build rust-foreign-document-test has failed
Otherwise async compatibility would impact sync users of the plain library.
2023-10-14 18:09:50 -04:00
Tom Alexander
e1fde88a60
Switch to using tokio too invoke emacs async. 2023-10-14 17:58:50 -04:00
Tom Alexander
123da9cca3
Make the compare functions async. 2023-10-14 17:51:12 -04:00
Tom Alexander
c20e7b5f2f
Make compare an always-async program.
This program is used as a development tool, so it is more valuable that we make it simple by only supporting one mode of operation (async) than making it widely compatible by supporting both.
2023-10-14 17:50:53 -04:00
Tom Alexander
74a3512038
Report whether all the tests passed. 2023-10-14 17:50:53 -04:00
Tom Alexander
ff04c4a131
Sort files in a compare_all_org_document. 2023-10-14 17:50:53 -04:00
Tom Alexander
aa35d1dc03
Copy over the rest of the foreign document test config. 2023-10-14 15:18:57 -04:00
Tom Alexander
92afdc0ea6
Strip prefix from file path. 2023-10-14 15:18:57 -04:00
Tom Alexander
f43920fc7c
Add a silent mode for running the diff. 2023-10-14 15:18:57 -04:00
Tom Alexander
dde4bc7920
Add code for structured printing of test results. 2023-10-14 14:30:24 -04:00
Tom Alexander
8271f6b44a
Start invoking the tests. 2023-10-13 13:20:21 -04:00
Tom Alexander
8a26965e14
Write a function to compare all org-mode files in a directory. 2023-10-13 13:02:17 -04:00
Tom Alexander
3927889e66
Change test status to pass/fail. 2023-10-13 12:14:46 -04:00
Tom Alexander
5ecd7b8bef
Launch tests in parallel. 2023-10-13 12:07:52 -04:00
Tom Alexander
b0b795d13b
Limit concurrency of running tests. 2023-10-13 11:41:49 -04:00
Tom Alexander
182c2737cd
Add futures. 2023-10-13 11:27:43 -04:00
Tom Alexander
5f93cabff5
Hit recursive async. 2023-10-13 11:27:42 -04:00
Tom Alexander
a1f8cbe079
Working on invoking the tests. 2023-10-13 11:27:42 -04:00
Tom Alexander
d7e870cba1
Starting to make result structs. 2023-10-13 11:27:42 -04:00
Tom Alexander
591b5ed382
Starting to define a TestConfig enum. 2023-10-13 11:27:42 -04:00
Tom Alexander
fd141762f0
Start a rust-based foreign document test.
Instead of using a simple bash script, this will use async rust to run multiple tests in parallel.
2023-10-13 11:27:42 -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
5136880532
Fix tests. 2023-10-12 16:14:23 -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
0d579263cb
Remove affiliated keyword non-exit for paragraph. 2023-10-12 14:07:57 -04:00
Tom Alexander
8bc942a26f
Create artificial scopes for the optional value and mandatory value. 2023-10-11 19:14:32 -04:00
Tom Alexander
dff7550038
Remove prints. 2023-10-11 19:09:51 -04:00
Tom Alexander
c4edcb8c24
Fix parsing the optional value. 2023-10-11 19:07:47 -04:00
Tom Alexander
4a44d88461
Better error messages. 2023-10-11 19:05:39 -04:00
Tom Alexander
efc6bd11d9
Do not exit on first loop. 2023-10-11 18:59:13 -04:00
Tom Alexander
51429e3155
Handle optval when translating names. 2023-10-11 18:50:22 -04:00
Tom Alexander
b1a0fa4acf
Compare optional value. 2023-10-11 18:44:21 -04:00
Tom Alexander
aeb2b6fe68
Parse out the optional value objects. 2023-10-11 18:29:07 -04:00
Tom Alexander
6679db98a8
Add comments. 2023-10-11 17:53:32 -04:00
Tom Alexander
dc9188dffc
Better error logging when emacs errors out.
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-11 17:22:01 -04:00
Tom Alexander
bd620ccd0d
Format. 2023-10-11 16:32:08 -04:00
Tom Alexander
3fcf1b3864
Compare Document additional properties. 2023-10-11 16:27:25 -04:00
Tom Alexander
d965dd6fd1
Implement get_additional_properties for Document. 2023-10-11 16:14:03 -04:00
Tom Alexander
a9f067e25a
Update name tests to use all the affiliated keywords. 2023-10-11 15:25:09 -04:00
Tom Alexander
41b4b1015e
Update all comparisons to handle affiliated keywords. 2023-10-11 14:57:32 -04:00
Tom Alexander
9523365090
Update all elements to the new AffiliatedKeywords. 2023-10-11 14:44:25 -04:00
Tom Alexander
aa33fe42a8
Update compare_properties to handle affiliated keywords. 2023-10-11 14:14:33 -04:00
Tom Alexander
78a9b93f22
Nevermind, it did work. 2023-10-11 14:03:42 -04:00
Tom Alexander
a89339e472
Using owned string did not solve it. 2023-10-11 14:00:18 -04:00
Tom Alexander
f3307a8159
Lifetime issue. 2023-10-11 13:55:43 -04:00
Tom Alexander
4bfa25dcb3
Comparing lists of quoted strings. 2023-10-11 13:04:33 -04:00
Tom Alexander
441a240c33
Comparing single string values. 2023-10-11 13:00:21 -04:00
Tom Alexander
e767892dd5
Add capitalization. 2023-10-11 12:42:42 -04:00
Tom Alexander
8e0a7dea0f
A very simple GetAffiliatedKeywords trait. 2023-10-11 12:19:27 -04:00
Tom Alexander
c4cc40f5e1
Parsing the affiliated keywords. 2023-10-11 12:16:35 -04:00
Tom Alexander
a5129199c7
I need to parse the affiliated keywords during parsing because it relies on the global settings. 2023-10-11 12:16:35 -04:00
Tom Alexander
c0e462944d
Comment out the broken stuff. 2023-10-11 12:16:35 -04:00
Tom Alexander
63614841e8
Trait lifetime issues. 2023-10-11 12:16:35 -04:00
Tom Alexander
bc4c09c546
Add constants for affiliated keyword settings. 2023-10-11 12:16:35 -04:00
Tom Alexander
0d1ab0e75a
Add a debug assert for org entities being sorted. 2023-10-11 12:16:35 -04:00
Tom Alexander
6e39029f91
Store the affiliated keywords on the plainlist. 2023-10-10 18:10:34 -04:00
Tom Alexander
7cb71a5a0a
Compare the additional properties on headlines. 2023-10-10 17:40:27 -04:00
Tom Alexander
6b90a9bfa8
Add TODO. 2023-10-10 17:15:51 -04:00
Tom Alexander
6d4db60688
Support ("") as being equal to None in compare_property_list_of_ast_nodes. 2023-10-10 16:35:16 -04:00
Tom Alexander
3aca01891d
Remove the old implementation of comparing headlines. 2023-10-10 16:12:29 -04:00
Tom Alexander
275ed87c3f
Add a compare_properties variant with support for additional properties. 2023-10-10 16:10:12 -04:00
Tom Alexander
b385270d7b
Implement a function to get the additional properties on a headline. 2023-10-10 15:54:44 -04:00
Tom Alexander
585b1d2b74
compare_properties for document. 2023-10-10 15:30:27 -04:00
Tom Alexander
c578bb45af
Implement ExactSizeIterator for the other node types. 2023-10-10 15:27:03 -04:00
Tom Alexander
b7f7876706
Impl ExactSizeIterator for multi_field_iter. 2023-10-10 15:23:04 -04:00
Tom Alexander
ee5ed17c20
Implement ExactSizeIterator for DocumentIter. 2023-10-10 15:19:42 -04:00
Tom Alexander
a873794068
Starting a compare properties document function. 2023-10-10 14:58:18 -04:00
Tom Alexander
534c5ded3c
Fix table type is required. 2023-10-10 02:07:36 -04:00
Tom Alexander
bdaf90af03
compare_properties timestamp. 2023-10-10 02:05:31 -04:00
Tom Alexander
1a67aac502
compare_properties latex environment. 2023-10-10 01:39:47 -04:00
Tom Alexander
9f166278f4
compare_properties babel call. 2023-10-10 01:36:48 -04:00
Tom Alexander
c2222c9102
compare_properties keyword. 2023-10-10 01:32:36 -04:00
Tom Alexander
fc104680eb
compare_properties horizontal rule. 2023-10-10 01:29:00 -04:00
Tom Alexander
e40e3ff553
compare_properties fixed width area. 2023-10-10 01:27:37 -04:00
Tom Alexander
0b465fe290
compare_properties planning. 2023-10-10 01:24:44 -04:00
Tom Alexander
d5396e311b
compare_properties diary sexp. 2023-10-10 01:22:16 -04:00
Tom Alexander
384242af87
compare_properties clock. 2023-10-10 01:19:14 -04:00
Tom Alexander
ec755bae8b
compare_properties src block. 2023-10-10 01:13:09 -04:00
Tom Alexander
0b1e06f0d5
compare_properties export block. 2023-10-10 01:07:41 -04:00
Tom Alexander
bdfa050ee3
compare_properties example block. 2023-10-10 01:02:45 -04:00
Tom Alexander
ec98e1c3c5
compare_properties comment block. 2023-10-10 00:15:04 -04:00
Tom Alexander
0d0b1b2051
compare_properties verse block. 2023-10-10 00:12:40 -04:00
Tom Alexander
2215c32e57
compare_properties table cell. 2023-10-10 00:11:05 -04:00
Tom Alexander
cf257443b0
compare_properties table row. 2023-10-10 00:07:34 -04:00
Tom Alexander
62815621e4
compare_properties table. 2023-10-10 00:05:34 -04:00
Tom Alexander
7af5359e00
compare_properties node property. 2023-10-09 22:45:32 -04:00
Tom Alexander
d1184fa1d0
compare_properties property drawer. 2023-10-09 22:42:02 -04:00
Tom Alexander
5b146d7c07
compare_properties drawer. 2023-10-09 22:37:53 -04:00
Tom Alexander
926682d513
compare_properties comment. 2023-10-09 22:36:15 -04:00
Tom Alexander
4c89d6c813
compare_properties footnote definition. 2023-10-09 22:32:25 -04:00
Tom Alexander
62926bb91d
compare_properties dynamic block. 2023-10-09 22:28:32 -04:00
Tom Alexander
9ab649ebd4
compare_properties special block. 2023-10-09 22:20:20 -04:00
Tom Alexander
ca1b633a9f
compare_properties quote block. 2023-10-09 21:57:11 -04:00
Tom Alexander
f543caee00
compare_properties plain list item. 2023-10-09 21:55:29 -04:00
Tom Alexander
409a92333e
compare_properties plain list. 2023-10-09 21:55:28 -04:00
Tom Alexander
7a38d1ead3
compare_properties paragraph. 2023-10-09 21:55:28 -04:00
Tom Alexander
33c53a14ab
Switch back to the old compare heading function until we support additional properties. 2023-10-09 21:32:29 -04:00
Tom Alexander
65615c64d2
Implement a new compare_properties implementation of the heading comparison. 2023-10-09 21:27:18 -04:00
Tom Alexander
166e59b922
Implement a compare_property_numeric. 2023-10-09 21:04:41 -04:00
Tom Alexander
8e357ed3b6
compare_properties section. 2023-10-09 20:54:31 -04:00
Tom Alexander
ee1d8ca321
Text markup uses confine context. 2023-10-09 20:36:38 -04:00
Tom Alexander
25531cc443
Accept eof as a disallowed character for plain links. 2023-10-09 20:24:43 -04:00
Tom Alexander
47a440147f
Fix formatting.
Some checks failed
rust-build Build rust-build has succeeded
rustfmt Build rustfmt 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
d1ef83afca
Compare properties of subscript and superscript. 2023-10-09 19:51:31 -04:00
Tom Alexander
4d88256394
Compare statistics cookies properties. 2023-10-09 19:40:13 -04:00
Tom Alexander
a588da2c4a
Compare target properties. 2023-10-09 19:37:47 -04:00
Tom Alexander
869c98d8b2
Compare line break properties. 2023-10-09 19:33:51 -04:00
Tom Alexander
4bc2f48738
Compare inline source block properties. 2023-10-09 19:31:57 -04:00
Tom Alexander
0d0b9863c3
Populate inline babel call fields. 2023-10-09 19:25:00 -04:00
Tom Alexander
6bc6fdc87b
Compare properties for inline babel calls. 2023-10-09 19:21:58 -04:00
Tom Alexander
bf1a281c29
Footnote reference description is in a confined context. 2023-10-09 18:23:13 -04:00
Tom Alexander
df4daa0e16
Do not include context in tracing. 2023-10-09 18:02:36 -04:00
Tom Alexander
5cd34ba3a2
Create a new context tree when calling into confine_context.
The parent exit matchers were causing an issue.
2023-10-09 18:02:36 -04:00
Tom Alexander
13b95cd0a1
Fix handling of text markup at the start/end of regular link descriptions and radio targets. 2023-10-09 18:02:36 -04:00
Tom Alexander
876d042c37
Fix tests. 2023-10-09 15:54:30 -04:00
Tom Alexander
81c0b7079f
Do not include leading slash in citation style.
Some checks failed
rust-build Build rust-build has succeeded
rust-foreign-document-test Build rust-foreign-document-test has failed
rust-test Build rust-test has failed
2023-10-09 15:48:43 -04:00
Tom Alexander
4a367dd7e0
Include closing semicolon in citation reference. 2023-10-09 15:45:10 -04:00
Tom Alexander
8a0f9d4540
Fix comparing key and mark prefix/suffix as optional. 2023-10-09 15:41:21 -04:00
Tom Alexander
f6155ecf93
Switch to returning ComparePropertiesResult.
This is to support returning lists of child results for properties that contain lists of ast nodes.
2023-10-09 15:33:33 -04:00
Tom Alexander
c077d34933
Populate citation reference properties. 2023-10-09 15:33:33 -04:00
Tom Alexander
1ecc3ecf9d
Fill citation fields. 2023-10-09 15:33:33 -04:00
Tom Alexander
840dc0a750
Support text markup at the start of a regular link description.
Some checks failed
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has failed
2023-10-09 14:02:27 -04:00
Tom Alexander
adc5a383c3
Allow text markup at the start of a radio target. 2023-10-09 13:47:36 -04:00
Tom Alexander
5ac12229f4
Fix footnote reference type. 2023-10-09 13:23:08 -04:00
Tom Alexander
9565435526
Compare footnote reference properties. 2023-10-09 13:14:35 -04:00
Tom Alexander
e39562c85d
Roll out the new children functions to all compare functions using the new compare_properties macro.
We will roll it out to the rest of them when we move them over to the new compare_properties macro.
2023-10-09 13:08:45 -04:00
Tom Alexander
84ec2f2023
Introduce functions to compare children and assert there are no children. 2023-10-09 13:01:55 -04:00
Tom Alexander
00ed63dcaa
Compare properties for export snippets. 2023-10-09 13:01:55 -04:00
Tom Alexander
4e551e6d7e
Compare latex fragment properties.
All checks were successful
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-09 12:30:59 -04:00
Tom Alexander
99318f39e3
Do not accept escaping {} for entities ending in whitespace. 2023-10-09 10:33:07 -04:00
Tom Alexander
c679a85e77
Fix sorting of entity names. 2023-10-09 10:33:07 -04:00
Tom Alexander
fc17fc224c
Update definitions to the version of entities used in the org-mode in the docker container. 2023-10-09 10:33:07 -04:00
Tom Alexander
7fe7e7a6ea
Add use_brackets. 2023-10-09 10:33:07 -04:00
Tom Alexander
ef591556fe
Populate entity fields. 2023-10-08 18:06:56 -04:00
Tom Alexander
c150aa4dea
Add support for an org-entities global setting. 2023-10-08 18:01:42 -04:00
Tom Alexander
1df6777b0b
Starting to compare entity properties. 2023-10-08 17:24:03 -04:00
Tom Alexander
f07d041eb9
Fix handling capitalization in macro names.
All checks were successful
rust-build Build rust-build has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
rust-test Build rust-test has succeeded
2023-10-08 16:51:44 -04:00
Tom Alexander
9bdec391f1
Do not capture trailing whitespace on the final macro arg.
Some checks failed
rust-build Build rust-build has succeeded
rust-foreign-document-test Build rust-foreign-document-test has failed
rust-test Build rust-test has succeeded
2023-10-08 16:39:22 -04:00
Tom Alexander
dd009498dd
Switch to using coalesce_whitespace_escaped for macro args.
Some checks failed
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has failed
2023-10-08 16:19:25 -04:00
Tom Alexander
17c745ee71
Improve coalesce_whitespace_escaped to borrow when single spaces are used. 2023-10-08 16:15:49 -04:00
Tom Alexander
41aa0349a0
Add tests for coalesce_whitespace_escaped. 2023-10-08 16:06:52 -04:00
Tom Alexander
a6adeee40b
Handle escaping the characters in org macro arguments. 2023-10-08 15:54:56 -04:00
Tom Alexander
a32cea8139
Coalesce whitespace in macro args. 2023-10-08 15:08:21 -04:00
Tom Alexander
37bc5ef712
Do not include whitespace at the end of value. 2023-10-08 14:48:29 -04:00
Tom Alexander
1a2f0856da
Compare macro properties. 2023-10-08 14:40:01 -04:00
Tom Alexander
e9276e35ca
Add comments. 2023-10-08 14:18:17 -04:00
Tom Alexander
3041a575f9
Fix lifetimes. 2023-10-08 14:13:02 -04:00
Tom Alexander
42dbda494a
Switch to using a similar optimized Cow function for regular link. 2023-10-08 14:11:46 -04:00
Tom Alexander
0e791e67ab
Move the angle link string processing functions to a util file.
Since I bothered to do the right thing and implement these as returning Cow so I can avoid unnecessary allocations, I figure I should move them to a util file so they can be re-used.
2023-10-08 13:36:57 -04:00
Tom Alexander
ba55e0df4f
Remove all whitespace from search option if it contains any line breaks and handle triple+ slashes for file links. 2023-10-08 13:23:12 -04:00
Tom Alexander
d987b9b75b
Remove line breaks from path and do not allow search option for protocol links. 2023-10-08 13:02:09 -04:00
Tom Alexander
aa253c38dd
Parse out the angle link properties. 2023-10-08 12:46:18 -04:00
Tom Alexander
ceb5376b21
Fix handling of search option for plain links when parenthesis are involved. 2023-10-08 10:57:05 -04:00
Tom Alexander
b64c1c944b
Allow :: to end links regardless of parenthesis. 2023-10-08 10:57:05 -04:00
Tom Alexander
120a06055f
Handle 3 or more slashes in the path for regular links. 2023-10-08 09:54:10 -04:00
Tom Alexander
bbcafef8bf
Handle 3 or more slashes in the path for plain links. 2023-10-08 09:51:12 -04:00
Tom Alexander
038535174b
Do not allow empty path in plain links and do not remove "//" in regular links. 2023-10-08 09:34:47 -04:00
Tom Alexander
1bbe8fc688
Do not strip "//" from plain link path. 2023-10-08 09:28:09 -04:00
Tom Alexander
ba8115c648
Remove "//" from file paths. 2023-10-08 09:16:48 -04:00
Tom Alexander
0030ef4459
Parse application and handle parenthesis in regular links. 2023-10-08 09:10:47 -04:00
Tom Alexander
20a8683894
Handle puncuation-only search options.
Some checks failed
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-07 03:25:37 -04:00
Tom Alexander
7196e10b69
Set up regular links for adding application. 2023-10-07 03:14:16 -04:00
Tom Alexander
ddb09a1805
Add support for application in plain links. 2023-10-07 03:00:40 -04:00
Tom Alexander
c58b850570
Add support for search options. 2023-10-07 02:42:07 -04:00
Tom Alexander
a55694176c
Compare the properties of plain links. 2023-10-07 02:22:36 -04:00
Tom Alexander
6973d5a2c0
Since value and path are always the same for radio links, I removed the extra value. 2023-10-07 01:48:16 -04:00
Tom Alexander
36327e92d7
Radio link did not need Cow.
All checks were successful
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
I was only using Cow because regular links can use templates which would require owned data. Radio links do not share this feature.
2023-10-07 01:26:52 -04:00
Tom Alexander
c70eb69ed6
Compare radio target properties. 2023-10-07 01:24:32 -04:00
Tom Alexander
029791e0b2
Fix tests. 2023-10-07 01:01:04 -04:00
Tom Alexander
8d621b32dc
Compare radio link properties.
Some checks failed
rust-test Build rust-test has failed
rust-build Build rust-build has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-07 00:57:55 -04:00
Tom Alexander
56348a6d54
Actually absolute paths are files too.
All checks were successful
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-07 00:15:37 -04:00
Tom Alexander
65e142a215
Link templates support single-colons and inject the value at the end if no %s is found. 2023-10-06 23:55:21 -04:00
Tom Alexander
aa0a0b890e
Relative paths are file links, absolute paths are fuzzy. 2023-10-06 23:48:55 -04:00
Tom Alexander
4c8828b91b
Apply the link templates. 2023-10-06 23:33:09 -04:00
Tom Alexander
2ba5156ee1
Add a global setting for link templates. 2023-10-06 20:34:13 -04:00
Tom Alexander
4716e1ce5b
Switch to using AsRef<str> to make compare_property_quoted_string generic. 2023-10-06 20:23:19 -04:00
Tom Alexander
89fcf6cb54
Restrict protocol links to org-link-parameters. 2023-10-06 19:18:58 -04:00
Tom Alexander
f220fd63e5
Add org-link-parameters to the GlobalSettings. 2023-10-06 19:14:11 -04:00
Tom Alexander
7cf1f7b7bb
Only orgify the link text if there are line breaks present. 2023-10-06 19:05:56 -04:00
Tom Alexander
135ca133ea
Add tests for search option. 2023-10-06 18:56:11 -04:00
Tom Alexander
d126488891
Handle orgifying text in regular link path and raw-link. 2023-10-06 18:30:08 -04:00
Tom Alexander
51748afd41
Compare pathreg. 2023-10-06 17:28:26 -04:00
Tom Alexander
e84135985e
Parse out the pathreg on regular links. 2023-10-06 17:21:43 -04:00
Tom Alexander
448902bb05
Add regular link tests for all the types. 2023-10-06 16:52:45 -04:00
Tom Alexander
65df18171a
Add field list for regular link. 2023-10-06 16:42:31 -04:00
Tom Alexander
fbe3c76ab7
Cleanup. 2023-10-06 16:32:49 -04:00
Tom Alexander
368c6a457e
Wrap the parameter sets in parenthesis. 2023-10-06 16:19:43 -04:00
Tom Alexander
c7dbe596b3
Switch to more generic implementation. 2023-10-06 16:03:41 -04:00
Tom Alexander
3da52a0826
Make a more generic version of compare_property_quoted_string.
This allows for the rust value to be determined by a function rather than hard-coded.
2023-10-06 14:07:25 -04:00
Tom Alexander
ae11e390d1
Add a default case for tokens which do not have any expected properties except for :standard-properties. 2023-10-06 13:45:19 -04:00
Tom Alexander
45dd38ac2d
Assume :standard-properties is an expected field. 2023-10-06 13:40:11 -04:00
Tom Alexander
7af18e2312
Move the EmacsField enum since it has nothing to do with ElispFact. 2023-10-06 13:32:39 -04:00
Tom Alexander
1b603f3a05
Implement the comparison. 2023-10-06 13:29:46 -04:00
Tom Alexander
d06e4de7b0
Starting a new macro for comparing fields.
This will help us assert that all fields are tested and that only expected fields are present.
2023-10-06 13:08:15 -04:00
Tom Alexander
672848d06a
Compare the properties of text markup. 2023-10-06 12:12:24 -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
f79606047e
Compare value.
Some checks failed
rust-test Build rust-test has failed
rust-foreign-document-test Build rust-foreign-document-test has succeeded
rust-build Build rust-build has succeeded
2023-10-05 20:13:10 -04:00
Tom Alexander
823426a4f1
Cleanup. 2023-10-05 20:04:52 -04:00
Tom Alexander
fa97124186
Handle nesting of brackets.
All checks were successful
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-05 19:51:13 -04:00
Tom Alexander
885fefd060
Implement generic function for balanced brackets text. 2023-10-05 19:51:13 -04:00
Tom Alexander
68e392811e
Parse the babel call. 2023-10-05 18:44:56 -04:00
Tom Alexander
343af41f78
Separate babel call out to its own parser. 2023-10-05 16:27:36 -04:00
Tom Alexander
6bd8d9efd7
Cleanup. 2023-10-05 04:04:18 -04:00
Tom Alexander
18ad80e018
Compare value. 2023-10-05 03:58:42 -04:00
Tom Alexander
4ba9d7439a
Compare value. 2023-10-05 03:46:14 -04:00
Tom Alexander
b478b6f5d7
Compare value, duration, and status. 2023-10-05 03:40:29 -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
ac7125d9b6
Only allow a single export type for export blocks. 2023-10-05 02:17:53 -04:00
Tom Alexander
58ca9569a6
Compare export type. 2023-10-05 02:15:32 -04:00
Tom Alexander
1da521b08a
Compare value for export block. 2023-10-05 02:06:26 -04:00
Tom Alexander
386ad5091d
End switches at the first unrecognized word in src blocks. 2023-10-05 01:55:33 -04:00
Tom Alexander
d8ea450a46
Add TODOs for comparing caption to elems that can have affiliated keywords. 2023-10-05 01:06:30 -04:00
Tom Alexander
3742f4fa08
Remove double option. 2023-10-05 00:53:11 -04:00
Tom Alexander
11a7234900
Handle empty parameters with whitespace preceding. 2023-10-05 00:49:15 -04:00
Tom Alexander
50a3631b79
Handle whitespace after parameters in src blocks. 2023-10-05 00:43:03 -04:00
Tom Alexander
da2d7535e8
Add synonyms for name. 2023-10-05 00:30:33 -04:00
Tom Alexander
1351577c5a
Fix handling affiliated keywords before invalid paragraphs. 2023-10-04 23:40:38 -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
b82d4c0eca
Fix finding name keyword in affiliated keywords list. 2023-10-04 21:32:10 -04:00
Tom Alexander
93fe46e4e7
Populate the name field on elements. 2023-10-04 21:27:55 -04:00
Tom Alexander
5b308ea76f
Implement a function to read the name from the affiliated keywords. 2023-10-04 21:12:06 -04:00
Tom Alexander
ab4a0c1224
Clean up. 2023-10-04 21:05:20 -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
057c8a1387
Compare name. 2023-10-04 19:43:34 -04:00
Tom Alexander
4fc81e983a
Add tests for names for lesser blocks. 2023-10-04 19:39:50 -04:00
Tom Alexander
258e9485de
Add tests for names and references in src and example blocks. 2023-10-04 19:34:10 -04:00
Tom Alexander
87ac18e6b2
Add real handling for preserve indent.
Now that I know which flag changes this setting, we can handle it properly.
2023-10-04 19:23:47 -04:00
Tom Alexander
c877116540
Fix handling of spaces between language, switches, and parameters. 2023-10-04 18:57:51 -04:00
Tom Alexander
8e70773b15
Fix handling cases where only language is specified before parameters. 2023-10-04 18:11:38 -04:00
Tom Alexander
f046b16c11
Compare src block parameters. 2023-10-04 18:02:50 -04:00
Tom Alexander
1ab7d2f2d7
Add a test showing we are not handling exports flags properly. 2023-10-04 17:32:51 -04:00
Tom Alexander
a548c7e170
Exclude language from the switches property. 2023-10-04 17:11:13 -04:00
Tom Alexander
b556f4617f
Add src block properties.
These are largely the same as example blocks but with a :language property.
2023-10-04 16:58:45 -04:00
Tom Alexander
13163f2468
Retain labels stays a boolean without -r. 2023-10-04 16:37:15 -04:00
Tom Alexander
da5dcd4c1b
Support multiple commas when escaping lines. 2023-10-04 16:03:45 -04:00
Tom Alexander
d059afef07
Add a setting for coderef_label_format. 2023-10-04 15:48:57 -04:00
Tom Alexander
bcade66e68
Retain labels is actually either a boolean or a number. 2023-10-04 15:43:09 -04:00
Tom Alexander
301a6db83e
Fix retain labels.
This is a numeric value based on the character offset of -k from the beginning of the switches.
2023-10-04 15:21:27 -04:00