Commit Graph

432 Commits

Author SHA1 Message Date
Kartik K. Agaram bfbf599edf Merge text0 2023-01-16 10:35:53 -08:00
Kartik K. Agaram 957c82d7f9 Merge text.love 2023-01-16 10:35:19 -08:00
Kartik K. Agaram 44fbb51161 Merge lines.love 2023-01-16 10:23:14 -08:00
Kartik K. Agaram 15f56341df correct comment; vsync is hard to reason about 2023-01-16 10:20:46 -08:00
Kartik K. Agaram 36ec0b4b06 Merge lines.love 2023-01-16 09:57:06 -08:00
Kartik K. Agaram e7b37e39de disable vsync
Thanks Nils Berg for the suggestion!
2023-01-16 09:50:32 -08:00
Kartik K. Agaram 0719fdeaaf hoist out some common settings 2023-01-16 09:48:06 -08:00
Kartik K. Agaram 29479aa5a1 bugfix: on.load_settings when there are none
Attempt #2; commit bbe8925378 was stupid and useless.

Scenario: run driver without any saved settings.
Before this commit (in driver repo), the driver would crash on quit.
2023-01-09 20:33:00 -08:00
Kartik K. Agaram bbe8925378 run on.load_settings after loading defaults 2023-01-09 20:18:53 -08:00
Kartik K. Agaram 9a0b1871d6 create space for app-specific settings 2023-01-01 18:30:12 -08:00
Kartik K. Agaram 998e40894f persist window geometry to disk across restart 2023-01-01 18:19:08 -08:00
Kartik K. Agaram b77b8a7b89 Merge text0 2023-01-01 18:10:43 -08:00
Kartik K. Agaram 27805f178f Merge text.love 2023-01-01 18:09:05 -08:00
Kartik K. Agaram ede18a8d8b less subtle out-of-focus background color 2023-01-01 17:52:57 -08:00
Kartik K. Agaram 0813c30e72 move 2023-01-01 17:52:06 -08:00
Kartik K. Agaram b3fb9fb097 insert space for loading settings 2023-01-01 17:51:35 -08:00
Kartik K. Agaram 4c73be087c rename 2023-01-01 17:50:41 -08:00
Kartik K. Agaram cb7a515d72 inline a function 2023-01-01 17:50:16 -08:00
Kartik K. Agaram 3752cf28dd Merge text.love 2023-01-01 09:38:14 -08:00
Kartik K. Agaram e9a517161b Merge lines.love 2022-12-23 20:46:31 -08:00
Kartik K. Agaram f351ee2f8f fix some arg names 2022-12-23 20:43:37 -08:00
Kartik K. Agaram 7ef551b821 another missed rename 2022-12-23 20:43:30 -08:00
Kartik K. Agaram 34abf6c624 a few more renames 2022-12-23 20:34:20 -08:00
Kartik K. Agaram 45032ebbbe Merge text0 2022-12-23 20:17:16 -08:00
Kartik K. Agaram 98add5023f Merge text.love 2022-12-23 20:11:51 -08:00
Kartik K. Agaram 4854165630 Merge lines.love 2022-12-23 19:47:10 -08:00
Kartik K. Agaram e0448d7d7f consistent names in a few more places 2022-12-23 19:32:58 -08:00
Kartik K. Agaram 2b3e09ca0f make love event names consistent
I want the words to be easy to read, and to use a consistent tense.
update and focus seem more timeless; let's make everything like those.
2022-12-23 18:52:28 -08:00
Kartik K. Agaram 3c2fa4a949 make out-of-focus color more subtle 2022-12-17 12:20:10 -08:00
Kartik K. Agaram 6c15f53b3d make more apparent which window has focus 2022-12-17 09:58:40 -08:00
Kartik K. Agaram f41a8bb91f bugfix: chords with modifiers 2022-11-30 19:28:59 -08:00
Kartik K. Agaram 8b8e08c4d6 nice way to make on.* handlers more discoverable 2022-11-27 14:56:48 -08:00
Kartik K. Agaram fdf4722d2a app is now live, can communicate with driver
In the process I've also switched to a separate channel for run-time
errors. Now the driver won't struggle to get bindings out of the app
while it's throwing errors.
2022-11-27 14:28:18 -08:00
Kartik K. Agaram ce36bc1f43 app running again 2022-11-27 14:06:15 -08:00
Kartik K. Agaram a02672dfd7 yet another fork trying to integrate my live framework with everything else
This time I'm no longer trying to find the ideal layering, just to graft
it on somehow. As a result there'll be things it's not
possible/convenient to change live.
2022-11-27 11:39:38 -08:00
Kartik K. Agaram b64a60a509 bring back everything from commit a68647ae22
We only want to unwind the source editing.
2022-11-06 08:53:46 -08:00
Kartik K. Agaram 7d310f157c Merge text.love 2022-11-03 21:46:20 -07:00
Kartik K. Agaram 29140d24be back to commit 8123959e52 without code editing 2022-11-03 21:45:25 -07:00
Kartik K. Agaram fd71bc7d94 Merge lines.love 2022-11-03 21:08:11 -07:00
Kartik K. Agaram 0e0f36f8b4 stop tracking wallclock time
We only need time differences.
2022-11-03 21:02:31 -07:00
Kartik K. Agaram f6596832fd Merge lines.love 2022-09-18 01:56:42 -07:00
Kartik K. Agaram 72791d9c35 some debug prints
I'm starting to edit the sources from within the app in ernest. First
question: why does the file navigation menu skip some files? These
prints answer the question.
2022-09-17 20:37:40 -07:00
Kartik K. Agaram 7e3dc2bc34 Merge lines.love 2022-09-06 18:46:07 -07:00
Kartik K. Agaram 73fefa7d09 support selections in the source editor
I've only tested side A so far, and included a statement of how I want
side B to behave.
2022-09-06 10:05:20 -07:00
Kartik K. Agaram e0f750913f Merge lines.love 2022-09-05 12:47:27 -07:00
Kartik K. Agaram 5ab541f160 . 2022-09-05 12:38:11 -07:00
Kartik K. Agaram 528c64d690 support drawings in the source editor 2022-09-05 11:29:39 -07:00
Kartik K. Agaram a92ded7f49 Merge lines.love 2022-09-03 17:24:30 -07:00
Kartik K. Agaram c6f88dccfa set window title within each app
The main app shows the file being edited, but the programming environment does not.
2022-09-03 17:20:11 -07:00
Kartik K. Agaram 21efba975d Merge lines.love 2022-09-03 17:15:25 -07:00
Kartik K. Agaram 17fa0ec9e7 bugfix: window title 2022-09-03 14:51:52 -07:00
Kartik K. Agaram e1c5a42f31 editing source code from within the app
integrated from pong.love via text.love:
  https://merveilles.town/@akkartik/108933336531898243
2022-09-03 14:13:22 -07:00
Kartik K. Agaram 42762ce062 editing source code from within the app
integrated from pong.love: https://merveilles.town/@akkartik/108933336531898243
2022-09-03 13:58:30 -07:00
Kartik K. Agaram 89081a8a78 Merge lines.love 2022-08-24 13:34:10 -07:00
Kartik K. Agaram ce31b74b10 infrastructure for caching LÖVE text objects 2022-08-24 13:27:04 -07:00
Kartik K. Agaram d011c0ce32 Merge lines.love 2022-08-23 13:25:55 -07:00
Kartik K. Agaram 8057f3e8fe stop putting button state in a global
Symptom: a test (test_click_to_create_drawing) started randomly failing
after I inserted a `return` 2 commits ago.

Cause: my tests call edit.draw, but button handlers only get cleared in
app.draw. So my tests weren't clearing button handlers, and every call
to edit.draw was accumulating states. Still unclear why those were going
to different state objects after the `return`, but anyway. I'm not going
to understand every last thing that happens when things go wrong, just
guarantee they can't go wrong. And the way to do that is to decentralize
button handlers to each state that receives them.

The State object in buttons.lua doesn't have to be Editor_state. It just
has to be some table that provides a Schelling Point for shared state.
2022-08-23 10:59:58 -07:00
Kartik K. Agaram e2077858f7 Merge lines.love
Bring forks up to date.
2022-08-21 14:36:21 -07:00
Kartik K. Agaram 61eb87b03c correct a comment
We no longer have undo history directly in globals.
2022-08-21 14:26:50 -07:00
Kartik K. Agaram 08b7318c0d Merge lines.love 2022-08-19 17:11:47 -07:00
Kartik K. Agaram 13f67fa851 regression: dropping files on the window
Also improve the test to catch this next time.
2022-08-19 17:05:41 -07:00
Kartik K. Agaram 8ce39fe403 title 2022-08-15 22:27:31 -07:00
Kartik K. Agaram 9d792a203b new fork: rip out drawing support 2022-08-14 09:20:14 -07:00
Kartik K. Agaram 9459d91abc remove some duplication 2022-08-14 08:10:24 -07:00
Kartik K. Agaram cc289363fa overzealous search-and-replace 2022-08-13 22:01:40 -07:00
Kartik K. Agaram 48162b9816 have file API operate on state object 2022-07-25 19:56:39 -07:00
Kartik K. Agaram 94b6d04e83 bugfix: alt-tab shouldn't emit keypress events
Looks like this only happens on Linux:
  https://love2d.org/forums/viewtopic.php?p=249700
2022-07-25 15:33:06 -07:00
Kartik K. Agaram 6c6a7aab07 move 2022-07-25 15:25:22 -07:00
Kartik K. Agaram fe8e4fd9da simplify hysteresis logic 2022-07-25 15:23:01 -07:00
Kartik K. Agaram 6f74f95a46 extract method 2022-07-23 23:36:04 -07:00
Kartik K. Agaram 29dac6a6ec separate data structure for each line's cache data
I have no idea what the performance implications of this are..
2022-07-17 21:05:01 -07:00
Kartik K. Agaram a1da18c107 more precise name 2022-07-15 22:15:07 -07:00
Kartik K. Agaram 2884f872d8 make test initializations a little more obvious 2022-07-15 22:12:25 -07:00
Kartik K. Agaram fc6b602342 bugfix: zoom in/out hotkeys
Broken since commit 3b36093553 5 hours ago.
2022-07-13 23:31:52 -07:00
Kartik K. Agaram 119abbd52e bugfix: resize 2022-07-13 15:40:14 -07:00
Kartik K. Agaram 3b36093553 left/right margin -> left/right coordinates
Editor state initialization now depends on window dimensions, so we have
to more carefully orchestrate startup.
2022-07-12 20:54:50 -07:00
Kartik K. Agaram f7d4deef0c add state arg to a few functions
- Text.cursor_at_final_screen_line
  - Text.move_cursor_down_to_next_text_line_while_scrolling_again_if_necessary
  - Text.snap_cursor_to_bottom_of_screen
  - Text.in_line
  - Text.to_pos_on_line
  - Text.to2
  - Text.to1
  - Text.previous_screen_line
  - Text.tweak_screen_top_and_cursor
  - Text.redraw_all
2022-07-12 17:24:01 -07:00
Kartik K. Agaram 81ecca89ff start passing in Editor_state explicitly
In this commit, top-level edit functions:
  - edit.draw
  - edit.update
  - edit.quit
  - edit.mouse_pressed
  - edit.mouse_released
  - edit.textinput
  - edit.keychord_pressed
  - edit.key_released
2022-07-12 15:33:06 -07:00
Kartik K. Agaram e95b4fec12 initialize contains test state 2022-07-12 15:29:22 -07:00
Kartik K. Agaram 8bbc1ffe34 group all editor globals
We're still accessing them through a global. But we'll change that next.
2022-07-12 15:24:56 -07:00
Kartik K. Agaram a5f725ab3b bring couple more globals back to the app level 2022-07-12 13:45:38 -07:00
Kartik K. Agaram 094f3bd7e8 button framework is at the app level 2022-07-12 13:40:53 -07:00
Kartik K. Agaram 2e3a85d94b experiment: new edit namespace
Still lots to do, but the eventual hope is that this will make this
project's code easier to reuse from other LÖVE projects.

One gotcha: even as we start putting code more aggressively into nested
tables, tests must remain at the top-level. Otherwise they won't run.
2022-07-11 23:18:26 -07:00
Kartik K. Agaram 3dccd7f81a stop pretending globals are local
One advantage of this approach: we don't end up with multiple lexical
scopes containing duplicates of the same modules.
2022-07-11 22:11:58 -07:00
Kartik K. Agaram e68d235c5f . 2022-07-11 22:03:41 -07:00
Kartik K. Agaram d2d54db1f9 fix a variable name 2022-07-11 22:01:30 -07:00
Kartik K. Agaram 3eb89adca6 add args to some functions
- Text.snap_cursor_to_bottom_of_screen
2022-07-08 16:22:11 -07:00
Kartik K. Agaram abcc18002b add args to some functions
- Text.to_pos_on_line
2022-07-08 15:45:45 -07:00
Kartik K. Agaram 9fb8f25030 indent 2022-07-08 15:43:45 -07:00
Kartik K. Agaram 00c64ed6e4 add args to some functions
- Text.in_line
2022-07-08 15:37:09 -07:00
Kartik K. Agaram a27dd15c1f add args to some functions
- Text.clip_selection
  - Text.cut_selection
  - Text.delete_selection
  - Text.delete_selection_without_undo
  - Text.mouse_pos
  - Text.to_pos
2022-07-08 15:30:10 -07:00
Kartik K. Agaram e39269b19e start passing left/right margins everywhere
I have a set of changes that passes all tests, but I'm going to commit
them very carefully to ensure I don't miss any call-sites. In this
commit I'm adding the args to:
  - Text.draw
  - Text.tweak_screen_top_and_cursor

But calls within them don't yet pass them where they should. In this
manner I'm going to progress systematically from the top down.
2022-07-08 15:12:17 -07:00
Kartik K. Agaram 048b6d9d3a drop an arg from a function 2022-07-08 09:44:49 -07:00
Kartik K. Agaram cff1e58cf6 switch arg for a function 2022-07-08 09:44:49 -07:00
Kartik K. Agaram 50a57d7ef6 stop scanning from start of file on every App.draw 2022-07-07 21:51:06 -07:00
Kartik K. Agaram 6dfe954c02 yet another bugfix in selection management
Thanks Leonard Schütz for the report!

Failing scenario:
  click to move cursor
  hit backspace

First backspace wasn't being doing anything earlier.
2022-07-07 07:39:01 -07:00
Kartik K. Agaram dff4587219 just keep the cursor visible after any input events
This is much nicer.
2022-07-06 09:03:54 -07:00
Kartik K. Agaram 2973324ef6 show cursor immediately after a mouse click
I've been subtly finding myself waiting for the cursor to stop blinking
to see if I clicked on the right place.
2022-07-06 08:57:45 -07:00
Kartik K. Agaram f2e5c4ffee bugfix: avoid scrolling on 'end'
There's multiple ways to do this, only one of them is right, and I keep
forgetting what it is. Turn it into a method.
2022-07-05 11:27:23 -07:00
Kartik K. Agaram 3422d92a00 bugfix: 'escape' to cancel a stroke
This has been broken since commit b544e8c357 on May 17 :/
I'm just undoing that commit, which turns out to be completely
unnecessary. And adding a test.
2022-07-05 11:06:55 -07:00