Commit Graph

  • 4126c833d1 add functions to replace start and end leaves in rrb_rope.sml Humza Shahid 2025-10-23 06:41:21 +01:00
  • 6f406069a8 add function to split right of vector Humza Shahid 2025-10-23 06:32:17 +01:00
  • f9f602bb9f add function to split left side of tree, given an index Humza Shahid 2025-10-23 06:23:30 +01:00
  • 7c9d47346e begin implementing clojure-style vector first as a rope implementation of radix-relaxed balanced trees Humza Shahid 2025-10-23 05:11:57 +01:00
  • 995ee01470 begin adding tests for 'diw' (delete-inside-word) motion Humza Shahid 2025-10-19 21:55:55 +01:00
  • 308c28c709 done adding tests for 'dT<char>' motion Humza Shahid 2025-10-19 14:52:04 +01:00
  • 766945ac88 remove some dead code Humza Shahid 2025-10-19 14:32:57 +01:00
  • 7d1272180b remove 'Cursor.tillPrevChr', replacing usages of that function with 'Cursor.toPrevChr' Humza Shahid 2025-10-19 14:30:26 +01:00
  • 60ec24453f reimplement 'yt<char>' motion to use 'Cursor.toNextChr' Humza Shahid 2025-10-18 19:55:53 +01:00
  • 9f53c5549a rename 'Cursor.toNextChrNew' function to 'Cursor.toNextChr', and update usages to change the name as well. Humza Shahid 2025-10-18 15:17:26 +01:00
  • e07f21d6f4 remove usages of 'Cursor.toNextChr' and delete it Humza Shahid 2025-10-18 15:14:41 +01:00
  • ee96419901 repace usage of 'Cursor.toNextChr' with 'Cursor.toNextChrNew' ins make-normal-delete.sml Humza Shahid 2025-10-18 15:07:14 +01:00
  • d7adae374f reimplement 'dt' motion Humza Shahid 2025-10-18 14:59:37 +01:00
  • bc44c7bcd0 add another test for 'df<char>' motion, checking that we leave a newline behind if the whole buffer is deleted Humza Shahid 2025-10-18 14:29:20 +01:00
  • 5d00da2cbb reimplement 'df' motion as per previous commits, and add a new test for 'df' motion to check that cursor does not land on a 'newline following a non-newline' position, after deleting using 'df<char>' Humza Shahid 2025-10-18 14:24:16 +01:00
  • 239aaacfc5 reimplement 't' movement motion the same way that 'f' movement motion was reimplemented in previous commit Humza Shahid 2025-10-18 14:05:25 +01:00
  • e44eae6d46 reimplement 'f' move motion more efficiently, not leaving the LineGap.t data structure while iterating to next count Humza Shahid 2025-10-18 14:01:06 +01:00
  • 597b5beb3d add tests (some of Which currently fail) for 'dF<char>' motion Humza Shahid 2025-10-18 13:37:42 +01:00
  • 05961a460c adjust colours to be same as 'morning' theme in neovim Humza Shahid 2025-10-17 23:37:09 +01:00
  • 111e0cf66d remove usage of concurrent ml, deciding that we prefer to run everything in the main thread instead Humza Shahid 2025-10-17 23:08:16 +01:00
  • 0799128f7c add tests for 'dt<char>' motion Humza Shahid 2025-10-17 16:24:43 +01:00
  • b8beeaaa60 add some more tests for 'df<char' motion, and fix implementation to pass those tests (if our cursor is at the same position after calling 'fMove', then exit the loop to find the next occurrence of <char>) Humza Shahid 2025-10-17 16:19:17 +01:00
  • 09c9a92029 add tests for 'df<char>' motion. Some fail and need the implementation to be fixed. Humza Shahid 2025-10-17 15:56:08 +01:00
  • 52f8e2307c add tests for 'dN' motion Humza Shahid 2025-10-16 21:28:18 +01:00
  • ad506c0c0a add tests for 'dn' motion Humza Shahid 2025-10-16 21:21:09 +01:00
  • c4c6634d79 add 'D' motion, which does the same thing as 'd$' (these two aliases exist in Vim too, to do the same thing) Humza Shahid 2025-10-16 15:02:45 +01:00
  • 3e1e80cd93 remove 'dd' tests from todo list, because we already have tests for 'dd' motion Humza Shahid 2025-10-16 14:49:27 +01:00
  • a28e099b6f add another test for 'd^' motion, that we don't delete anything when cursor is on a newline (this one passes but it is an important case to test) Humza Shahid 2025-10-16 13:22:34 +01:00
  • 2667e58a26 done adding tests for d^ motion Humza Shahid 2025-10-16 13:19:01 +01:00
  • 91b7d54cc4 begin adding tests for d^ motion Humza Shahid 2025-10-16 13:11:39 +01:00
  • 7676556513 fix failing test for 'd$' motion, which means completing tests for 'd$' motion too Humza Shahid 2025-10-16 12:07:27 +01:00
  • f804a2a9fc add tests for 'd$' motion, including one failing test whose implementation needs to be fixed Humza Shahid 2025-10-16 12:02:20 +01:00
  • c2eaa5537c modify 'd$' implementation to pass failing test (we don't want to delete newline at end of line, so we don't do that now) Humza Shahid 2025-10-16 11:09:20 +01:00
  • c190cec868 add failing test for 'd$' motion Humza Shahid 2025-10-16 11:04:26 +01:00
  • abde4dc8a6 add tests for 'dG' motion Humza Shahid 2025-10-16 01:21:30 +01:00
  • a855cecd25 implement 'dG' motion (need to test it next) Humza Shahid 2025-10-16 01:13:14 +01:00
  • 5fcee88911 add tests for 'd0' motion Humza Shahid 2025-10-15 22:38:15 +01:00
  • e1347da0e1 add to-do list of things to do next Humza Shahid 2025-10-15 15:29:19 +01:00
  • 82c1d48c6f add tests for 'dgg' motion Humza Shahid 2025-10-15 15:06:04 +01:00
  • 4c8f588ce9 add tests for 'dge' motion Humza Shahid 2025-10-15 14:46:09 +01:00
  • 60b6cc6d6d better naming of functions to create search/char highlight Humza Shahid 2025-10-15 10:01:50 +01:00
  • e2ed022ccc clearer names for colour-related fields in text-builder-utils.sml Humza Shahid 2025-10-15 09:55:36 +01:00
  • 066c39c98d done adding tests for 'dge' motion Humza Shahid 2025-10-15 08:52:25 +01:00
  • 5206ec555d add a test for 'dge' motion Humza Shahid 2025-10-14 16:26:12 +01:00
  • 78a5fdff58 add another test for 'dge' motion Humza Shahid 2025-10-14 15:19:24 +01:00
  • 999a35cb8b fix failing test for 'dge' motion: if the deletion takes us to a newliune that follows a non-newline-character, we should decrement the cursor to be on the non-newline-character Humza Shahid 2025-10-14 12:31:18 +01:00
  • d73959ce9b find failing test case for 'dge' motion (deletion works as expected, but cursor is at wrong place) Humza Shahid 2025-10-14 12:21:23 +01:00
  • 03c3bd310b add an additional test for 'dge' motion Humza Shahid 2025-10-14 12:16:18 +01:00
  • 22a8b807d2 handle edge case when building dfa from a string, where an exception was raised when our search regex contains an alternation where the second alternation is a substring of the first alternation, and add a test for it to make sure that it passes Humza Shahid 2025-10-14 02:24:45 +01:00
  • be7a9b3035 add minimal modifications to implementation of 'dge' motion, so that failing test for 'dge' motion passes Humza Shahid 2025-10-13 22:08:33 +01:00
  • 8e56eb7628 begin adding tests for 'dge' delete motion (one test currently fails) Humza Shahid 2025-10-13 22:03:49 +01:00
  • 6f9365effb add tests for 'dB' motion Humza Shahid 2025-10-13 21:41:45 +01:00
  • cb5013bc25 done adding tests for 'db' delete motion Humza Shahid 2025-10-12 08:49:50 +01:00
  • 88e1ae00a9 progress adding additional tests for 'db' motion Humza Shahid 2025-10-12 08:42:05 +01:00
  • facc5b3761 begin adding tests for 'db' delete motion Humza Shahid 2025-10-12 08:27:14 +01:00
  • ca2c2f438c when adding to followset in ONE_OR_MORE case, make sure we add the child to the followset as well Humza Shahid 2025-10-12 00:32:55 +01:00
  • ce3470e612 fix bug in regex-test: dfa-gen.sml should add the position of the endMarker to the followSet as well Humza Shahid 2025-10-12 00:22:14 +01:00
  • bc16421a24 add failing test Humza Shahid 2025-10-11 14:35:15 +01:00
  • 478a2e5002 add some more tests from freeCodeCamp tutorial Humza Shahid 2025-10-11 14:27:56 +01:00
  • 7f1f1f7bdc at end of char loop, track if length of dstate changed. If it did not, that means that we have encountered a loop that is at the end; thus, we should add the endMarker Humza Shahid 2025-10-11 13:39:28 +01:00
  • b2931753d0 make dfa-gen.sml compile again, with parity before reimplementing it Humza Shahid 2025-10-11 13:23:44 +01:00
  • 96f0afc2b2 attempt at fixing dfa-gen to convert properly Humza Shahid 2025-10-11 11:32:30 +01:00
  • a44afca40b checkpoint for reimplementing dfa-gen.sml Humza Shahid 2025-10-10 11:54:34 +01:00
  • 5a43954aef checkpoint Humza Shahid 2025-10-10 04:59:32 +01:00
  • 244d0ce26d begin attempt to compute followpos properly Humza Shahid 2025-10-10 04:44:18 +01:00
  • bdfca17b5a implement function to insert a list to a pos Humza Shahid 2025-10-10 04:00:34 +01:00
  • 58c3e65fdd add list of follows to leaves in regex parse tree (only changed data type; need to populate follows list later) Humza Shahid 2025-10-10 03:49:09 +01:00
  • 108a30ea79 add utility function to insert from a list into a set Humza Shahid 2025-10-10 03:29:52 +01:00
  • 88eb30dbf2 done caching firstpos and lastpos, and using the cached data Humza Shahid 2025-10-10 01:56:54 +01:00
  • 6e646bdffa begin computing firstpos and lastpos during parsing Humza Shahid 2025-10-10 01:43:24 +01:00
  • 90327579d1 find failing test in regex: 'go*' does not match phrase 'gut feeling'. It should match the first character because the 'o' is optional, but the * acts like + instead, expecting at least one 'o' Humza Shahid 2025-10-09 22:46:06 +01:00
  • 7a3e4c2b67 add some additional regex tests Humza Shahid 2025-10-09 22:26:33 +01:00
  • 4665141a1d checkpoint for adding freeCodeCamp regex tests Humza Shahid 2025-10-09 17:06:09 +01:00
  • c427cd25fa begin adding regex tests based on freeCodeCamp tutorial Humza Shahid 2025-10-09 16:56:36 +01:00
  • e51c18166e begin adding tests based on tutorial by freeCodeCamp Humza Shahid 2025-10-09 16:50:19 +01:00
  • 3197315478 fix failing tests for escaping regex metacharacters Humza Shahid 2025-10-09 06:22:21 +01:00
  • 8bd8977027 add tests checking if regex escape sequences are recognised Humza Shahid 2025-10-09 06:14:29 +01:00
  • a5fec6f1a2 add tests for escape sequences Humza Shahid 2025-10-09 06:06:07 +01:00
  • 5d7b9e35ba add tests that the regex returns an empty DFA when the regexString contains the endMarker Humza Shahid 2025-10-09 05:44:35 +01:00
  • f32a53aabc added regex tests for case sensitivity Humza Shahid 2025-10-09 05:39:01 +01:00
  • 250ae239be begin adding tests for regex Humza Shahid 2025-10-09 05:34:32 +01:00
  • 70215fbc0a done implementing functionality to get PersistentVector.prevMatch working. We use the call stack to try the node at the previous index if we receive an invalid state from the recursive call. Humza Shahid 2025-10-08 11:10:06 +01:00
  • 088c5c3d98 checkpoint while implementing prevMatch functionality Humza Shahid 2025-10-08 10:39:49 +01:00
  • 0de7a9278a progress implementing help-prev-match for vector Humza Shahid 2025-10-08 10:27:19 +01:00
  • 3b823d7ae6 delete 'nextMatch' function in search-list.sml, and refactor other code to use alternative function Humza Shahid 2025-10-08 08:16:20 +01:00
  • 8941ce9f89 reimplement functionality to search forwards using 'n' command Humza Shahid 2025-10-08 08:10:51 +01:00
  • 108e021fdb log an exception if search-thread encounters a failure Humza Shahid 2025-10-08 06:51:52 +01:00
  • ec62efb40c add 'textLength' value to line_gap.sml's string_iterator, and remove function to check if iterator is t end Humza Shahid 2025-10-08 06:49:39 +01:00
  • 4d1b2073dc reimplement functionality to run whole text search using DFA Humza Shahid 2025-10-08 06:40:20 +01:00
  • 3c2e5812cd reimplement function to search through text from scratch Humza Shahid 2025-10-08 06:35:49 +01:00
  • 1d6213636e add function to line_gap.sml to check if iterator is at end Humza Shahid 2025-10-08 06:24:40 +01:00
  • 7248a3e27f add function to get a char from a string_iterator in line_gap.sml Humza Shahid 2025-10-08 06:17:01 +01:00
  • 3345f618ca progress making string iterator for line_gap.sml Humza Shahid 2025-10-08 06:12:40 +01:00
  • 5c8e74ac11 change type of SEARCH message to take a DFA, instead of a searchString Humza Shahid 2025-10-08 05:54:19 +01:00
  • 06106f5de8 remove 'searchString' field from app_type, because the same role is fulfilled by new 'dfa' field Humza Shahid 2025-10-08 05:40:29 +01:00
  • df346d0a9e add ability to switch to case-sensitive-search-mode using '?' command from normal mode Humza Shahid 2025-10-08 05:29:05 +01:00
  • 8857f49537 pass DFA to 'SearchList.buildRange' function, so that we don't need to parse search string into DFA each time Humza Shahid 2025-10-08 05:20:33 +01:00
  • fd8385fa81 add dfa field to app_type so that we don't rebuild DFA each time we want to execute a search again (like after deleting) Humza Shahid 2025-10-08 05:02:15 +01:00
  • 7f68084398 add 'caseSensitive' field to NORMAL_SEARCH_MODE, so that we know what kind of DFA to build Humza Shahid 2025-10-08 04:53:04 +01:00
  • 7a72bc2ed1 done with allowing different types of endMarkers Humza Shahid 2025-10-07 14:44:40 +01:00