Tom Alexander
bfea828e62
Update detect_plain_list to support line breaks.
2023-08-25 05:27:08 -04:00
Tom Alexander
bc5745a95f
Add support for list items with a line break before their contents.
2023-08-25 05:18:26 -04:00
Tom Alexander
2fb57daaec
Move the table cell object parser into the object parser file.
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
2023-08-25 04:35:54 -04:00
Tom Alexander
3a38f4cd35
Add support for the ast entity.
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
2023-08-25 04:28:24 -04:00
Tom Alexander
45e16fea2d
Honor the NO_COLOR environment variable.
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
2023-08-25 04:25:39 -04:00
Tom Alexander
5134cece7b
Add color to compare output.
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
rustfmt Build rustfmt has succeeded
2023-08-25 04:09:52 -04:00
Tom Alexander
19432d91ab
Get the emacs and org-mode versions when launching the compare script.
rust-build Build rust-build has succeeded
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
2023-08-25 03:11:19 -04:00
Tom Alexander
16a107eebb
Update org-mode version.
2023-08-25 02:56:28 -04:00
Tom Alexander
9c1e6ccc97
Add a detect_element function.
...
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
0dbc8f0925
Remove redundant exit matcher checks.
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
2023-08-25 00:01:56 -04:00
Tom Alexander
02fe10fba3
Move objects to a lower exit class.
...
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
Paragraph's exit matcher which detects elements was causing the plain list parser to exit after the first item was parsed which was causing significant amounts of re-parsing.
2023-08-24 23:34:23 -04:00
Tom Alexander
33d7ae03d1
Add a TODO.
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
2023-08-24 21:35:34 -04:00
Tom Alexander
03faa7257f
Move the indent level for plain list's exit matcher to const fn instead of grabbing from the context.
...
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
This made a slight improvement to performance.
2023-08-24 20:50:24 -04:00
Tom Alexander
ae3510abd5
Do not cast lesser block name to lowercase at runtime.
...
This reduced the runtime of my problematic test case from 6.9 seconds to 6 seconds.
2023-08-24 20:10:43 -04:00
fluxcdbot
ad3f47864a
CI: autofix rust code.
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
rust-build Build rust-build has failed
2023-08-24 23:43:41 +00:00
Tom Alexander
cf37bc4111
Remove unnecessary context from some util functions.
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
2023-08-24 19:29:00 -04:00
Tom Alexander
e5224cda63
Removing dead code.
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
2023-08-24 18:40:25 -04:00
Tom Alexander
64e3481660
Update get_consumed to use the new wrapped input type.
2023-08-24 18:33:40 -04:00
Tom Alexander
32071ce74d
Fix handling of start of line in OrgSource.
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
2023-08-24 18:08:16 -04:00
Tom Alexander
e84e2b5147
Update tests to compile again.
2023-08-24 17:15:24 -04:00
Tom Alexander
3348807a05
Eliminate the document root context element.
2023-08-24 17:01:12 -04:00
Tom Alexander
720afa5d32
Update getting the previous character and previous line.
...
This can be done a lot more efficiently now that we are keeping track of this information in the wrapped input type instead of having to fetch to the original document out of the context tree.
2023-08-24 16:56:07 -04:00
Tom Alexander
dab598e5e7
Convert all functions to using the wrapped input type.
rust-test Build rust-test has failed
rust-build Build rust-build has failed
2023-08-24 16:06:29 -04:00
Tom Alexander
b7a5dd48ea
Impl missing traits.
2023-08-22 23:32:27 -04:00
Tom Alexander
c475dce6da
Fix lifetime issue.
2023-08-22 23:14:23 -04:00
Tom Alexander
6d1675fa00
Lifetime issue.
2023-08-22 22:57:44 -04:00
Tom Alexander
cda49c628c
Move the wrapped input into the parser.
2023-08-22 22:33:50 -04:00
Tom Alexander
65b87bd65d
Merge remote-tracking branch 'input/main' into wrapped_input
2023-08-22 22:26:55 -04:00
Tom Alexander
5a7f34b63e
Prepare for merging into Organic.
2023-08-22 22:24:35 -04:00
Tom Alexander
edff1e089d
Implement text since line break.
2023-08-22 22:18:44 -04:00
Tom Alexander
bc29f1dfc0
Add slicing tests.
2023-08-22 21:38:50 -04:00
Tom Alexander
e4656cddf6
Implement slice, take, and compare.
2023-08-22 21:25:13 -04:00
Tom Alexander
1e3dadd458
Wrap the input.
2023-08-22 17:24:26 -04:00
Tom Alexander
2ec055af5a
Very simple setup.
2023-08-22 17:22:13 -04:00
Tom Alexander
6823db5c60
Initial commit.
2023-08-22 17:11:45 -04:00
Tom Alexander
655af88cdf
Add scripts for running perf and callgrind.
2023-08-22 14:21:27 -04:00
Tom Alexander
2cd6f736c2
Fix building without compare feature.
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
2023-08-17 00:13:25 -04:00
fluxcdbot
5686256039
CI: autofix rust code.
rust-build Build rust-build has failed
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
2023-08-17 04:05:48 +00:00
Tom Alexander
7cf1b2d2b8
Disable the failing plain list whitespace ownership test.
rust-build Build rust-build has failed
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
2023-08-17 00:03:05 -04:00
Tom Alexander
74f4aa8d33
Remove dependency on files for running compare.
...
The tests still use files since they get the test name from a file but compare does the same action via stdin so it can operator on any org source.
2023-08-16 23:56:05 -04:00
Tom Alexander
7fafbfb6bb
Do not consume whitespace in the final plain list item.
2023-08-16 17:37:19 -04:00
Tom Alexander
56281633f3
Support blank link in plain_list_item_end, move exit matcher to end of loop in plain_list, and maybe consume trailing whitespace in plain_list_item.
2023-08-16 17:09:06 -04:00
Tom Alexander
823c33ef8e
Reduce use of expect in main.rs
2023-08-16 16:37:14 -04:00
Tom Alexander
7df393f31d
Make a new naive implementation of plain_list_item.
...
Still need to update plain_list_item_end and handle the whitespace ownership issues, but starting from a simplified state will help.
2023-08-16 16:05:24 -04:00
Tom Alexander
72d5f8f35c
Make a new naive implementation of plain_list.
2023-08-16 16:05:24 -04:00
Tom Alexander
e5e5120a10
Move telemetry handling to the tracing-specific main function.
...
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
This is so main_body can exit with an error at any time without missing the shutdown_telemetry function. This does not catch panics.
2023-08-16 16:05:24 -04:00
Tom Alexander
dae46adc12
Feature-gate tracing import.
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
2023-08-14 23:33:38 -04:00
Tom Alexander
63d092c83d
Group the two traces per compare into one trace.
2023-08-14 22:10:58 -04:00
Tom Alexander
a7b298eeec
Fix lesser block exit priority.
...
The paragraph end was matching text inside lesser blocks.
2023-08-14 17:32:10 -04:00
Tom Alexander
1bbfbc3164
Add additional tracing to lesser block.
2023-08-14 17:32:09 -04:00
Tom Alexander
2bcc3f0599
Fix reporting of jaeger traces when diff does not match.
...
The early exit was causing some traces to not be reported.
2023-08-14 17:32:09 -04:00
Tom Alexander
b93a12c32c
Add support for escaped double quotes in sexp.
2023-08-14 16:55:04 -04:00
Tom Alexander
72b8fec1be
Add support for tracing in run_docker_compare.bash.
2023-08-14 16:12:31 -04:00
Tom Alexander
eb379af78d
Switch export snippet to use exit matchers.
2023-08-14 13:13:32 -04:00
Tom Alexander
cc83431d62
Consume trailing whitespace for property drawers.
...
rust-build Build rust-build has failed
rust-test Build rust-test has failed
This is a change between the org-mode in emacs 29.1 and the org-mode currently in main.
2023-08-14 11:57:12 -04:00
Tom Alexander
e33ec4a02c
Add support for reading begin/end bounds in the new standard-properties format.
2023-08-13 02:21:02 -04:00
Tom Alexander
f7afcec824
Add support for hash notation in the elisp parser.
2023-08-13 02:21:02 -04:00
Tom Alexander
cf0991fdff
Add support for parsing vectors in the elisp parser.
2023-08-13 02:21:02 -04:00
Tom Alexander
290a700a22
New, updated opentelemetry tracing exporter.
2023-08-10 23:27:15 -04:00
Tom Alexander
44ad6753ca
Fix feature gating the compare code.
2023-08-10 20:22:34 -04:00
Tom Alexander
cd1b4ba785
Make the tracing macros optional.
2023-08-10 20:22:34 -04:00
Tom Alexander
1f10d3d064
Disable all the old tracing stuff.
2023-08-10 20:22:34 -04:00
Tom Alexander
77de97703f
Remove all the old references to "toy language"
...
This is a relic from the early development days in this repo. When I first started this repo, it was a clean-slate playground to test ideas for solving the road blocks I hit with my previous attempt at an org-mode parser. To keep things simple, I originally only had a very basic set of syntax rules that only vaguely looked similar to org-mode. Once I had things figured out, I kept developing in this repo, morphing it into a full org-mode parser. A couple of references to those early days still remained, and this patch should get rid of the last of them.
2023-08-10 18:52:57 -04:00
Tom Alexander
66c71e7e40
Switch the compiled bin to running a diff just like the automated tests.
...
This is mostly so I can test a variety of org-mode documents without needing to integrate them into the org samples folder.
2023-08-10 18:46:19 -04:00
Tom Alexander
17e523b74c
Do not consume space in time rest when leading into a repeater or delay.
2023-07-27 20:39:13 -04:00
Tom Alexander
ece8fcd0c4
Implement parser for active/inactive timestamp time ranges.
2023-07-27 20:26:56 -04:00
Tom Alexander
1a5b7ca30c
Implement parser for active/inactive timestamp date ranges.
2023-07-27 19:59:36 -04:00
Tom Alexander
b5a029e2bf
Implement parser for inactive timestamps.
2023-07-27 19:54:33 -04:00
Tom Alexander
c5f81298ba
Switch to passing in the exit matcher from a higher context to reduce the permutations of functions.
2023-07-27 19:52:35 -04:00
Tom Alexander
529418a9d1
Implement parser for active timestamps.
2023-07-27 19:45:57 -04:00
Tom Alexander
d4a3628481
Implement parser for date.
2023-07-27 19:20:28 -04:00
Tom Alexander
70f2747291
Implement parser for diary timestamps.
2023-07-27 18:59:32 -04:00
Tom Alexander
49d5a4e4b5
Call out to the parsers for the various timestamp types.
...
The parsers for those types remain unimplemented.
2023-07-24 17:54:49 -04:00
Tom Alexander
fa5fc41121
Create structure for timestamps.
2023-07-24 17:34:07 -04:00
fluxcdbot
efa56a6bef
CI: autofix rust code.
semver Build semver has succeeded
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
2023-07-24 16:57:08 -04:00
Tom Alexander
23d587c699
Implement parser for subscript/superscript with braces.
2023-07-24 16:29:31 -04:00
Tom Alexander
f717d5e7df
Implement parser for braceless subscript/superscript.
2023-07-24 15:41:14 -04:00
Tom Alexander
993c73dc9f
Create structure for subscript and superscript.
2023-07-24 14:23:36 -04:00
Tom Alexander
b8b2e33137
Implement the statistics cookie parser.
2023-07-22 02:12:21 -04:00
Tom Alexander
c73e26e2d6
Create structure for statistics cookies.
2023-07-22 02:12:20 -04:00
fluxcdbot
abb0aeacaf
CI: autofix rust code.
semver Build semver has succeeded
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
2023-07-22 05:43:17 +00:00
Tom Alexander
caa6c41798
Add a test case.
2023-07-22 01:40:27 -04:00
Tom Alexander
e54218c0d7
Implement the target parser.
2023-07-22 01:36:00 -04:00
Tom Alexander
d60cad07e0
Create structure for targets.
2023-07-22 01:15:04 -04:00
Tom Alexander
5c1d913c99
Check that the preceding line for a line break is non-empty.
2023-07-22 00:43:02 -04:00
Tom Alexander
a1f3e9ea47
Implement line break parser.
2023-07-22 00:03:21 -04:00
Tom Alexander
4d114206ef
Create structure for line breaks.
2023-07-21 23:48:37 -04:00
Tom Alexander
80039aa605
Fix bracket counting in inline babel calls.
2023-07-21 23:20:10 -04:00
Tom Alexander
0b41e12424
Fix counting brackets in inline source block.
2023-07-21 23:14:52 -04:00
Tom Alexander
e8979513aa
Implement parser for inline source blocks.
2023-07-21 22:51:19 -04:00
Tom Alexander
e0d2bb8213
Create structure for inline source blocks.
2023-07-21 22:29:04 -04:00
Tom Alexander
45b01012b3
Implement the parser for inline babel calls.
2023-07-21 21:39:53 -04:00
Tom Alexander
eef2944307
Create structure for inline babel calls.
2023-07-21 19:53:02 -04:00
Tom Alexander
7ce9dafd96
Fix parsing citations inside paragraphs.
2023-07-21 18:52:02 -04:00
Tom Alexander
d678391789
Fix parsing semicolons.
2023-07-21 18:42:22 -04:00
Tom Alexander
1a8bf01fba
Fix simple citations by making prefixes and suffixes optional.
2023-07-21 18:19:39 -04:00
Tom Alexander
4ad297f58a
Add a test for a simple citation.
2023-07-21 18:00:19 -04:00
Tom Alexander
6b47a6c6c3
Initial implementation for citations.
...
This implementation definitely has bugs and is completely untested at this point. I'm just committing the initial "assume everything works" version before I did into debugging and fixing.
2023-07-21 17:52:18 -04:00
Tom Alexander
e24b413cd0
Finish first implementation of citation reference.
2023-07-21 16:38:49 -04:00
Tom Alexander
339ff5cd26
Implement key parser and begin key_suffix parser.
2023-07-20 01:13:49 -04:00