This is needed to get the last character of the "selection".
For example:
```lua
doc:get_text(1, 1, #doc.lines, math.huge)
```
will return everything but the last newline, while
```lua
doc:get_text(1, 1, #doc.lines, math.huge, true)
```
will return the last newline too.
* improve projectsearch
- stick status to top of view
- add horizontal scrolling
- added ellipsis at the end of the text if it's too long
* Reverted removal of 0 on yield.
---------
Co-authored-by: Adam Harrison <adamdharrison@gmail.com>
This is needed because we use `mtime` to determine if a file has actually changed, but on most systems this has a resolution of 1 second (and we truncate it to an integer anyways).
Without this wait, we would skip reloading a file that has been changed multiple times in the same `mtime` second, thus losing some data.
* remove scaling logic from font code
for the time being its been hardcoded to 1 for the non SDL Renderer basewin setup, so nothing is lost for non MacOS users.
will be revisited in the future when scaling is improved with SDL3 and moved into scripts.
* remove unused window_renderer argument from font functions
* move window logic to lua, pass window via argument
* rename window creation functions `*_create`, `*_destroy`, add real init
* Set active window when processing frame
* get size directly from RenWindow, get active window size from renderer
* correct reverted draw calls
* fix window not reappearing on restart
* add simple logic to persist the core window
* fix style
* add renwindow documentation
* make windows hidden by default again
* reorder ren_update_rects execution, add comment to note future work
* Initial commit of process framework.
* Fixed a small issue.
* Cleaned up old name.
* Harmonized with lua 5.4, and added documentation.
* Process is a userdata, not a table, so had to wrap it. Also added in `wait`.
* Added in documentation.
* Clarified documentation.
* Applied patch, and fixed undefined variable.
* Re-ordered documentation to be more sensible, added missing option.
* Added into start.
* Removed unecessary require.
* macos: support drag-and-drop and default file associations
* resources/macos: use LSItemContentTypes to narrow down files
* macos: support opening folders
* rootview: workaround macos weird dnd event timing
* core/rootview: rename variable and refactor if statement
* Update language_python.lua
* Update language_python.lua
* Update language_python.lua
* implemented a better `python_type` subsyntax
* Update language_python.lua
* fixed a small error where you couldn't hint a type at a var and guive it a value at the same time
* Update language_python.lua
* Update language_python.lua
Dictionaries appear now normally
* Update language_python.lua
* added suggestions concerning strings
* commited suggestion
Co-authored-by: Guldoman <giulio.lettieri@gmail.com>
* Various changes
* Update language_python.lua
Syntax more optimized but a tiny bit more complex...
* Simplified everything
---------
Co-authored-by: Guldoman <giulio.lettieri@gmail.com>
* improve number highlighting for c
* add unsigned suffix
* add long suffixes
* reorder octal literals and add suffix for hex numbers
* fix integer and float suffixes
too many characters, send help
* fix: avoid iterating over a changing table in `run_threads`
This is done to avoid iterating over a table that can change in the meantime.
More precisely the issue appears if a thread is removed from the table, we yield early from `run_threads` because we reached the end of the frame, and a new thread is added before the next iteration.
For example:
```lua
local lost_time = false
core.add_thread(function()
-- force early yield
local t0 = system.get_time()
while system.get_time() - t0 < .1 do end
lost_time = true
end, "a")
local step = core.step
function core.step()
if lost_time then
-- add a new thread while run_threads hasn't finished iterating
core.add_thread(function()end, "a1")
lost_time = false
end
return step()
end
```
would crash with `invalid key to 'next'`.
* fix: only run coroutine if it wasn't removed
* fix: don't handle `core.threads` table as an array
This caused some entries to be skipped or even removed erroneously.
* Make command palette item scrolling more natural
Also add a config option for the maximum number of visible entries in the command palette.
* Make `autocomplete` item scrolling more natural
* Improve `autocomplete` suggestions box sizing
This avoids that the box gets too big because of non-visible items, and makes it reactive to window sizing.
* Draw ellipsis when `autocomplete` entries aren't fully visible
* comment typo in data/core/init.lua
* init.lua reword comment
* Update dirwatch.lua
Some wording is still whacky, maybe next time
* Update dirwatch.lua
* clear up can/may be not nil confusion
* falsey vs falsy new wording to help out
* falsey -> falsy
* Update data/core/dirwatch.lua
Co-authored-by: Guldoman <giulio.lettieri@gmail.com>
---------
Co-authored-by: Guldoman <giulio.lettieri@gmail.com>
* Improve number highlighting for python syntax highlighting
Adds support for octal and binary representation, as well uppercase characters (X, B and O)
* add underscore and negative hex/oct/bin value support
* Removed | from pattern
* fix nagbar failed save message
- visually separated statements with a `.`
- first statement slightly rewritten
- use `'` rather than `"`
* yeahhhh no back to `"`