Commit Graph

1848 Commits

Author SHA1 Message Date
83634ef20e log exceptions that occur to a local file 2025-08-04 06:23:52 +01:00
528aea59a1 reimplement vi's '$' motion as a DFA, also eliminating a bug that involves double deleteion in the process 2025-08-04 05:37:08 +01:00
fe9dd0f034 progress functorising 2025-08-04 04:24:24 +01:00
895c286b4b additional functorisation progress 2025-08-04 04:14:17 +01:00
55e5778ff7 pass env argument in if-character-folder functor, to make it more generic (can access some environment data, which enables more reuse) 2025-08-04 04:05:39 +01:00
aca8ba44b9 functorise some additional functions to reduce boilerplate 2025-08-04 03:44:45 +01:00
cef8467ff6 begin functorising some char iterators which use if-expressions instead of DFAs 2025-08-04 03:23:27 +01:00
e55a7e2bca add separate folder when deleting end of current word, so that we can fix 'de' and 'dE' motions (the result of the folders for the cursor motion is meant to be decremented by 1, but the result for deleting is not meant to be decremented or incremented at all) 2025-08-03 17:35:33 +01:00
0f3b6a39fb done functorising character iterators for vi word 2025-08-03 17:13:26 +01:00
bf9e8be3b0 almost done functorising character iterators for vi word 2025-08-03 17:10:15 +01:00
cd6ce4ffcc begin functorins vi word char iterators 2025-08-03 17:01:50 +01:00
cf93d5885f remove unneeded function 2025-08-03 16:52:55 +01:00
cc276b5454 functorise character folders for vi WORD 2025-08-03 16:48:45 +01:00
b8a5df814e begin functorising some char-iteration functions 2025-08-03 16:34:31 +01:00
473ea8e35d functorise character folders to reduce repetitive boilerplate code (but have not functorised yet) 2025-08-03 16:21:36 +01:00
9662540889 remove a couple of unneded functions 2025-08-03 14:32:44 +01:00
ff9d61bba0 a bit of formatting 2025-08-03 14:18:17 +01:00
e078ca89d2 refactor some code to use looping in DFA (which is faster than looping outside of the data structure) 2025-08-03 14:17:25 +01:00
904526cd63 fix bug in building search list from range: if first index is less than 0, then start from 0, or else start from calculation 2025-08-03 13:41:11 +01:00
16fdfc7ac2 print stack trace for when an exception occurs 2025-08-03 13:14:28 +01:00
1fe07149c7 fix bug im output of export string: previously had 'endXToNdc' and 'endYToNdc' functions (which sometimes produced incorrect/pixelated output), but it turns out that I was meant to use only 'xToNdc' and 'yToNdc' for correct output. 2025-08-01 06:32:07 +01:00
2ee4501c6a add separate whip sprite for last attack frame 2025-07-31 19:12:36 +01:00
f36771f04d add visible whip to attack sprites (except for last sprite which will use a separate whip sprite) 2025-07-31 18:48:37 +01:00
8cc2adcbf0 formatting 2025-07-30 07:28:37 +01:00
0445595990 when generating collision string, map 'squares' vector to a new vector which treats all visible (non-transparent) colours the same. This allows us to ignore colour differences when generating the collision string, which is good because the colour of a pixel doesn't make a difference to collision detection. 2025-07-30 07:27:55 +01:00
eedaf0450f fix bugs with generating export strings from quad tree (have to add 1 to ex and ey indiscriminately, except if we are not in the canvas width/height dimensions) 2025-07-29 15:55:38 +01:00
f74eb0fe58 add new dotscape sprites (standing and character movement during whip attack) 2025-07-29 09:05:38 +01:00
a8ee1d5d37 a little refactoring to make implementation of word and WORD selection (viW, ciW, diW) easier 2025-07-21 09:40:32 +01:00
51c9090adf add a test for 'b' motion, checking that we move to start of prev word when on first character of next word 2025-07-21 00:28:25 +01:00
af900057b0 delete dead code 2025-07-20 17:55:43 +01:00
d3e54d4102 reimplement vi's 'e' command 2025-07-20 17:48:45 +01:00
146953c25d reimplement vi's 'b' command 2025-07-20 17:36:33 +01:00
33474fb5ae formatting 2025-07-20 16:57:22 +01:00
41ca612ca1 reimplement vi's 'ge' command (endOfPrevWord) 2025-07-20 16:55:42 +01:00
8d67c33893 reimplement vi's 'w' command to use ViWordDfa 2025-07-20 16:04:48 +01:00
15fc36c7a4 delete some code which is now dead 2025-07-20 14:10:35 +01:00
90c0d657bc reimplement vi's 'E' command 2025-07-20 14:00:59 +01:00
2b060b99a0 add a 'MakeNextDfaLoopPlus1' functor to later use in forward word motions which ignore state of current character but start tracking state from next character. To be used in reimplementations of Vi's 'e' and 'E' commands. 2025-07-20 13:52:23 +01:00
c6f4d1d8f3 reduce indentation level in MakeDfaLoop functors a bit, by performing 'strIdx = ...' calculation before we branch in case expression 2025-07-20 13:48:14 +01:00
f57af737b9 further refactoring, functorising a function because it will later be used elsewhere as well 2025-07-20 13:39:48 +01:00
554c3b0354 done refactoring 'startOfCurrentWORD' function, with tests still passing 2025-07-20 13:28:40 +01:00
6b5a95ff45 reimplemented vi's 'B' command (although it needs a little refactoring) 2025-07-20 13:09:21 +01:00
cf15077480 a bit of refactoring 2025-07-20 09:56:32 +01:00
10b76d98c5 functorise some boilerplate code to start a DFA loop 2025-07-20 09:39:17 +01:00
25fb8bfc5e make DFA for vi next WORD motion, still passing tests 2025-07-20 09:12:23 +01:00
d392ad2c79 100NvimTree_1 done with functionality to export collisions 2025-07-13 15:45:09 +01:00
7e96203f92 done adding export-collision functionality, including collision message, in functional core. Next: add imperative shell scaffolding 2025-07-13 15:33:32 +01:00
de16e816b4 add scale parameter for collisions, so that we can easily use collisions when object is larger than normal/native 2025-07-13 15:14:19 +01:00
d98b815516 done generating collision string 2025-07-13 15:02:13 +01:00
7cfbd3cdb3 begin creating a string for collision data 2025-07-13 14:35:50 +01:00