Commit Graph

270 Commits

Author SHA1 Message Date
Tom Alexander
bfc9e7f58d
When re-parsing last item in list, only disable white space consumption for last element in item. 2023-08-31 17:08:21 -04:00
Tom Alexander
2048d8f0b6
Support comments at the end of the line in diary sexp.
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 15:31:54 -04:00
Tom Alexander
466716881e
Fix macros consuming whitespace even when the exit matcher is calling for an exit.
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 15:11:29 -04:00
Tom Alexander
eb9c582fa5
'>' is allowed as a post character in text markup.
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-29 23:57:15 -04:00
Tom Alexander
6f2d90162b
Do not use the plain text parser for property drawers.
This additional exit condition was causing property drawers to parse incorrectly.
2023-08-29 22:03:20 -04:00
Tom Alexander
f170a557ed
Use character offsets in diff. 2023-08-29 21:49:16 -04:00
Tom Alexander
a6d742a536
Fix handling line breaks after divider in description lists. 2023-08-29 21:27:54 -04:00
Tom Alexander
f6c895319f
Add support for diffing description lists. 2023-08-29 19:35:54 -04:00
Tom Alexander
2682779534
Add support for parsing description lists. 2023-08-29 18:13:55 -04:00
Tom Alexander
ea6faf728c
Add test for description list. 2023-08-29 18:07:35 -04:00
Tom Alexander
f426e32798
Do not include trailing punctuation or whitespace in plain links. 2023-08-29 17:35:04 -04:00
Tom Alexander
66037356c5
Add test showing plain links ending in punctuation currently do not parse correctly. 2023-08-29 17:24:44 -04:00
Tom Alexander
1bcd1895c0
Allow affiliating keywords with regular keywords. 2023-08-29 17:19:13 -04:00
Tom Alexander
e3d38cfbe2
Add a test for floating affiliated keywords. 2023-08-29 17:05:19 -04:00
Tom Alexander
56865c68fc
Do not allow plain links without a path. 2023-08-29 15:44:04 -04:00
Tom Alexander
f376f1cf8e
Add a test for empty sections. 2023-08-29 14:10:26 -04:00
Tom Alexander
a46b358549
Switch citations to using bracket depth from OrgSource instead of from the context.
This is for the same reasons as footnote references.
2023-08-28 03:04:32 -04:00
Tom Alexander
ec813e3b3f
Switch to using bracket depth from OrgSource instead of from the context for footnote references.
It is currently unknown if this will produce a performance increase, but unless it has a significant performance penalty we are going to go forward with this change because it makes it more explicit which values need to be read deeply from other elements (therefore needing to be in the context) vs values that can be bound to the exit matcher since they are only used within the confines of the current element.

I suspect we will get a performance boost since it will be reducing the nodes that need to be walked in the context but maintaining bracket depth count over the entire document instead of only inside elements that need balanced brackets could cost us.
2023-08-28 03:04:32 -04:00
Tom Alexander
16e788c36c
Add tests for LaTeX fragments and text markup that span more than three lines.
The documentation currently states that the body for these cannot span more than three lines but that is not the behavior I am seeing from emacs in practice. Waiting on a mailing list response to tell me if this is a documentation error or a parser error.
2023-08-28 01:18:46 -04:00
Tom Alexander
18a396b7cb
Remove deprecated tests.
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-27 23:25:50 -04:00
Tom Alexander
1a3e26c148
Update plain list greater block exit matcher priority test to match blog post.
All checks were successful
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
It is still testing the same thing, but I changed the contents a bit to match what is being used in my blog post.
2023-08-27 21:03:16 -04:00
Tom Alexander
2d4e54845b
Add support for parsing tags in headlines. 2023-08-25 06:13:29 -04:00
Tom Alexander
d5ea650b96
Add a test for dynamic blocks. 2023-08-25 05:36:57 -04:00
Tom Alexander
efa372a9e9
Add a test case that breaks the current parser. 2023-08-25 04:39:58 -04:00
Tom Alexander
69ecfd2646
Move all the specific-token tests into subfolders.
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-20 23:38:47 -04:00
Tom Alexander
8162f03051
Put all trailing whitespace ownership test cases into the automated tests.
All checks were successful
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded
Notes for this investigation moved to cba1d1e988/notes/plain_list_ownership_notes.org .

Mailing list thread on the investigation: https://list.orgmode.org/9372527e-3852-419e-936a-7b4dd38cc847@app.fastmail.com/ .
2023-08-20 16:03:31 -04:00
Tom Alexander
f7ec89858d
Add notes about optimization ideas. 2023-08-14 23:16:23 -04:00
Tom Alexander
92abac37e2
s/precedent/precedence/
I used the wrong word. This is referring to the priority between paragraphs ending vs export snippets ending, not a reference to something occurring in the past.
2023-08-14 13:57:01 -04:00
Tom Alexander
fc28e3b514
Add a test for trailing blank lines after paragraphs.
Some checks failed
rust-test Build rust-test has failed
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
The behavior in emacs does not match the description in the org-mode documentation. I have sent an email to the org-mode mailing list and I am waiting their response so I can adjust (or not adjust) my parser accordingly.
2023-08-11 01:37:04 -04:00
Tom Alexander
73e15286dc
Add test cases. 2023-07-24 17:15:27 -04:00
Tom Alexander
f717d5e7df
Implement parser for braceless subscript/superscript. 2023-07-24 15:41:14 -04:00
Tom Alexander
8c00ee24ba
Add a test to prove that subscript/superscript cannot start without a leading character even though its at the start of the file. 2023-07-24 14:33:04 -04:00
Tom Alexander
4a565601c1
Add test cases. 2023-07-24 14:29:20 -04:00
Tom Alexander
b8b2e33137
Implement the statistics cookie parser. 2023-07-22 02:12:21 -04:00
Tom Alexander
caa6c41798
Add a test case. 2023-07-22 01:40:27 -04:00
Tom Alexander
6b82214ec3
Add test case. 2023-07-21 23:41:29 -04:00
Tom Alexander
0b41e12424
Fix counting brackets in inline source block. 2023-07-21 23:14:52 -04:00
Tom Alexander
2773b35438
Add test case. 2023-07-21 19:53:18 -04:00
Tom Alexander
7ce9dafd96
Fix parsing citations inside paragraphs. 2023-07-21 18:52:02 -04:00
Tom Alexander
640a9375bc
Add a testcase populating all the optional fields for citations. 2023-07-21 18:28:16 -04:00
Tom Alexander
c1a99a03f8
Add test case. 2023-07-19 17:52:59 -04:00
Tom Alexander
eb03342506
Add test cases. 2023-07-18 23:46:10 -04:00
Tom Alexander
5ad8fdf4b2
Add test cases. 2023-07-18 21:14:49 -04:00
Tom Alexander
2966b91a09
Add an example for org-mode entities. 2023-07-18 19:40:09 -04:00
Tom Alexander
f3592347c1
Add a test showing that radio targets only have to semantically match their links. 2023-07-14 12:28:52 -04:00
Tom Alexander
c0371ff958
Add sample org documents with macros. 2023-07-13 23:16:56 -04:00
Tom Alexander
b3ab8cde43
Add test data for angle links. 2023-07-13 22:45:13 -04:00
Tom Alexander
a352699fdc
Remove the id link.
All checks were successful
semver Build semver has succeeded
cargo-fmt Build cargo-fmt has succeeded
build-organic-test Build build-organic-test has succeeded
organic-test Build organic-test has succeeded
build-cargo-fmt Build build-cargo-fmt has succeeded
This was not added to org-link-parameters until emacs 29. Since I use emacs 29 locally, but the CI uses emacs 28, I am removing the test case until emacs 29 is released.
2023-07-13 19:43:26 -04:00
Tom Alexander
5f4e240af0
Add an initial implementation of PlainLink. 2023-07-13 19:20:17 -04:00
Tom Alexander
ab7eb76e13
Radio links can exist before their target is defined. 2023-04-24 19:55:23 -04:00
Tom Alexander
5c37373419
Add a simple radio link example. 2023-04-24 18:42:15 -04:00
Tom Alexander
ed174c1c41
Fix nested bolds child eating the parent exit. 2023-04-24 16:48:33 -04:00
Tom Alexander
f1bd7f2d1b
Add support for rust-coreutils in integration test script. 2023-04-23 16:12:34 -04:00
Tom Alexander
72e656751a
It looks like paragraphs inside empty drawers just capture the first new line and then the rest are trailing whitespace capture. 2023-04-22 21:11:22 -04:00
Tom Alexander
401fb339d0
Add a text markup text with all variants. 2023-04-22 20:05:58 -04:00
Tom Alexander
80f43d54da
Add a simple example of text markup. 2023-04-22 18:55:24 -04:00
Tom Alexander
8072430265
Add an example of text markup opening and closing. 2023-04-22 17:31:21 -04:00
Tom Alexander
185f16d2cc
Add latex environment simple test. 2023-04-22 16:48:56 -04:00
Tom Alexander
0117a9490a
Add a test for affiliated keywords. 2023-04-21 23:01:12 -04:00
Tom Alexander
f0bab39778
Code structure for keyword. 2023-04-21 22:33:10 -04:00
Tom Alexander
bfffde3fdb
Implement the horizontal rule parser. 2023-04-21 22:23:59 -04:00
Tom Alexander
5ae8ac61e5
Code structure for fixed width area. 2023-04-21 22:04:22 -04:00
Tom Alexander
591d9c5e1f
Make the test a little more complex. 2023-04-21 21:26:38 -04:00
Tom Alexander
ead643b3c7
Add a simple planning example. 2023-04-21 21:24:36 -04:00
Tom Alexander
fa88a7d600
Add a simple diary sexp test case. 2023-04-21 20:23:58 -04:00
Tom Alexander
30c82ca1bb
Add a simple clock test. 2023-04-21 19:24:23 -04:00
Tom Alexander
6fce666983
Add test case for invalid src block. 2023-04-21 18:13:23 -04:00
Tom Alexander
cdcaae11c4
Add tests for broken export blocks. 2023-04-21 18:11:26 -04:00
Tom Alexander
77d3f40c19
Add a simple example of each lesser block type. 2023-04-21 17:37:48 -04:00
Tom Alexander
f1b0d7e6be
Add a simple test table org-mode document. 2023-04-21 14:39:20 -04:00
Tom Alexander
b557b9ca5d
Accounting for the blank lines at the head of documents and comments plus property drawer at the head of the zeroth section. 2023-04-19 18:37:39 -04:00
Tom Alexander
f7f29e7a56
Finish property drawer parser but node property is unstarted. 2023-04-19 17:15:00 -04:00
Tom Alexander
fcf1ba4ea6
Add an example of nested properties adding to previous properties. 2023-04-19 16:43:23 -04:00
Tom Alexander
2a04455955
Remove the makefiles from org_mode_samples.
These Makefiles were beautiful, but now that the org_mode_samples are integrated into the rust test framework, it no longer makes sense to keep using these Makefiles. Instead, running scripts/run_integration_test.bash <org file under org_mode_samples>... will output the same information, additional information, and it will do it all without writing anything to disk (besides any files generated during compilation).
2023-04-19 16:22:53 -04:00
Tom Alexander
8214efdfcb
Make the integration test script work from anywhere. 2023-04-19 16:15:58 -04:00
Tom Alexander
09442a0530
Oddly enough emacs is breaking up lines with 🔚 as a separate paragraph when regular letters would get combined. 2023-04-18 21:41:13 -04:00
Tom Alexander
0effc7c087
You can have a block containing only whitespace which gets matched as a paragraph whose value is just a single newline. 2023-04-18 20:58:25 -04:00
Tom Alexander
98a46cd707
More notes. 2023-04-17 20:53:51 -04:00
Tom Alexander
dc5fc863f5
Add more paragraph tests. 2023-04-17 20:40:23 -04:00
Tom Alexander
867a55fbf7
More paragraph tests. 2023-04-17 20:33:51 -04:00
Tom Alexander
4dd18006a5
Add some tests for paragraphs. 2023-04-17 20:13:07 -04:00
Tom Alexander
89040c51a6
Update test case 1. 2023-04-17 19:45:50 -04:00
Tom Alexander
49be5ae7b1
Identify a mistake in the plain list drawer test. 2023-04-17 17:29:35 -04:00
Tom Alexander
f1880fdb7d
Add plain list first tests. 2023-04-17 16:41:58 -04:00
Tom Alexander
16218ec040
Add footnote definition first tests. 2023-04-16 18:01:47 -04:00
Tom Alexander
4c4d79a665
Add the dynamic block first tests. 2023-04-16 17:56:03 -04:00
Tom Alexander
a6036e257e
Add the drawer second tests. 2023-04-16 17:50:16 -04:00
Tom Alexander
beff8f8999
Add the drawer first tests. 2023-04-16 17:41:14 -04:00
Tom Alexander
ed6fda9918
Add the greater block second tests. 2023-04-16 17:33:33 -04:00
Tom Alexander
6da7cb2c17
Add greater block first tests. 2023-04-16 17:18:41 -04:00
Tom Alexander
e20bd793be
Include comment about section-first and section-second tests. 2023-04-16 17:08:56 -04:00
Tom Alexander
70596dc27b
Add all the section-first tests. 2023-04-16 17:06:08 -04:00
Tom Alexander
f41197b096
Add the first test. 2023-04-16 16:55:53 -04:00
Tom Alexander
d155ca1027
Set up an experiment for figuring out exit matcher priority. 2023-04-16 16:48:22 -04:00
Tom Alexander
0be554bfb6
Add an example of headlines breaking a drawer. 2023-04-16 15:55:39 -04:00
Tom Alexander
9e4bf553d3
First attempt at implementing drawers. 2023-04-15 17:56:07 -04:00
Tom Alexander
6e4aa38fce
Add test demonstrating problem. 2023-04-15 17:04:47 -04:00
Tom Alexander
d1a7d0b835
Show that trailing whitespace belongs to comments. 2023-04-15 16:37:25 -04:00
Tom Alexander
26e0ad5800
Add an example exploring indentation with comments. 2023-04-15 16:36:11 -04:00
Tom Alexander
cfcf6443ca
Added example org-mode file with comments. 2023-04-15 16:27:28 -04:00
Tom Alexander
08fed1301e
Fix plain list parser to not consume trailing whitespace on the last item. 2023-04-14 19:24:05 -04:00
Tom Alexander
4c920b9d3c
Add an example showing footnote definitions and their associated trailing whitespace. 2023-04-10 13:19:30 -04:00
Tom Alexander
ab329f367f
Add an exmaple showing that greater blocks begin can be indented different from end. 2023-04-07 16:14:57 -04:00
Tom Alexander
352532b759
Add an example showing greater blocks can be nested if they are different types. 2023-04-07 16:14:08 -04:00
Tom Alexander
942b486078
Add a test file showing lists where the earlier one is indented. 2023-03-31 13:32:07 -04:00
Tom Alexander
e7397f818d
Adding some notes on the exit matcher loop issue. 2023-03-27 12:33:58 -04:00
Tom Alexander
422535fbe4
Wrote a plain list item parser. 2023-03-25 14:23:52 -04:00
Tom Alexander
4a863e92ff
Add a test case showing only paragraphs exist on the first line for plain lists. 2023-03-25 13:25:20 -04:00
Tom Alexander
d98a11059c
Introduce the document structure. 2023-03-23 17:52:16 -04:00
Tom Alexander
fd45e4381c
Add a test org-mode document that shows backslashes before a line break create an explicit line break.
This line break appears in the output (for example a <br> in HTML) as opposed to the line breaks in paragraphs syntactically that get reduced to a single space on the same line.
2023-03-23 16:57:03 -04:00
Tom Alexander
7402de6a7c
Add a test org document with an asterisk inside the bold.
This is to prove that bold can contain an asterisk if it doesn't satisfy the exit matcher.
2023-03-23 14:20:14 -04:00
Tom Alexander
61638e80a0
Looks like tables cannot contain lists so we don't have to worry about more complicated exit rules. 2023-03-21 15:20:42 -04:00
Tom Alexander
fd879de353
Add a test case showing 2 blank lines exits the top-level plain list. 2023-03-21 15:13:50 -04:00
Tom Alexander
95fe88a5f4
Make all the makefiles recursive. 2023-03-21 14:32:26 -04:00
Tom Alexander
8cfa40737a
Fixed it so that each source file has its own role. 2023-03-21 14:20:33 -04:00
Tom Alexander
f8bce7e1a6
Create a more automatic makefile for org-mode trees.
Unfortunately, this seems to rebuild every source file every time so I still need to work on fixing that.
2023-03-21 14:18:14 -04:00
Tom Alexander
a5a03126d2
Add test for nested list end via 2 blank lines. 2023-03-19 14:52:29 -04:00
Tom Alexander
6a0dc2fc62
Format the ast. 2023-03-19 14:21:02 -04:00
Tom Alexander
33a69fbe0e
fixup 2023-03-19 14:17:11 -04:00
Tom Alexander
4e7d7d3bcf
Add scripts for dumping the org-mode ast to investigate how emacs parses various inputs. 2023-03-19 14:07:47 -04:00