Commit Graph

945 Commits

Author SHA1 Message Date
Guldoman dced6da03d Implement tab drag and drop 2021-10-02 18:36:59 +02:00
Guldoman 86632b68de Move single tab drawing to its own function 2021-10-02 18:36:59 +02:00
Adam Harrison f80f920bda Added in suggested changes. 2021-10-02 12:25:52 -04:00
Adam Harrison ee61b34084 Turned off whitespace by default. 2021-10-02 12:23:32 -04:00
Guldoman bf06aa1c4d
Load project module on project change (#571) 2021-10-02 16:38:45 +02:00
Guldoman b5f0b340d2
Add option to disable caret blinking (#572) 2021-10-02 16:38:10 +02:00
Guldoman 3b280401e4
Small cleanup of `scale` plugin 2021-10-02 03:24:35 +02:00
Guldoman ab0ca031fa
Add option to disable scrolling past the end (#566) 2021-09-30 13:10:38 -07:00
Rongfei Wang cf11d67895
Remove duplicate command declaration (#565) 2021-09-30 13:38:32 +02:00
Adam Harrison b6829cb041 Used copy. 2021-09-24 11:22:39 -04:00
Adam Harrison 425a4f600b Forgot to reset offset. 2021-09-24 11:22:39 -04:00
Adam Harrison 67032f72ac Removed subpixel mentions. 2021-09-24 11:22:39 -04:00
Adam Harrison e25f2e9c5c Removed font renderer. 2021-09-24 11:22:39 -04:00
Adam 8c32950f4b
Merge pull request #527 from adamharrison/native-interop
Native Plugins
2021-09-23 15:11:08 -04:00
Adam Harrison 466464d8a4 Mispelling. 2021-09-22 17:25:16 -04:00
Adam Harrison b8da46e10e Removed searchers[4]. 2021-09-22 17:24:22 -04:00
Adam Harrison 713ef787c2 Removed extra macros, used PLATFORM. Also removed MACOS, as it's redundant C code that's already encapsulated within PLATFORM. 2021-09-20 23:50:06 -04:00
Adam Harrison e13529444f Less C code, and more namespacing is better. 2021-09-20 23:42:39 -04:00
Adam Harrison 3ca127793a Incorporated some suggestions, and some functions. 2021-09-20 23:33:12 -04:00
Francesco Abbate 14dd6f1cd6 Normalize to project dir in treeview open
When left-clicking in a TreeView file we use now
core.normalize_to_project_dir to normalize correctly
the file name.
2021-09-19 23:52:18 +02:00
Francesco Abbate 8d3680ab45 Scale custom syntax fonts for scale plugin
Close #539.
2021-09-19 18:51:44 +02:00
Guldoman 80a6b2245e
Reset syntax highlighting on file rename 2021-09-17 23:41:14 +02:00
Guldoman f6b6634868 Force showing tabs when dragging them 2021-09-17 22:25:05 +02:00
Guldoman 3eba7cd7f1 Implement tab drag and drop 2021-09-17 22:25:05 +02:00
Guldoman 6a3f59c423 Move single tab drawing to its own function 2021-09-17 22:25:05 +02:00
Adam Harrison 2ac7c7f09b Syntax. 2021-09-16 17:43:17 -04:00
Adam Harrison 4b828eff65 Markdown subsyntax highlighting. 2021-09-16 17:29:44 -04:00
Adam Harrison 10c3c9d4cf Undid deletion. 2021-09-16 16:24:07 -04:00
Adam Harrison 2987554097 Moving things into final positions. 2021-09-16 15:47:12 -04:00
Adam Harrison 377ce1cd06 Moved things around, fixed a few things up. 2021-09-16 12:37:17 -04:00
Guldoman 66bfff2e26 Fix wrong locked sibling check
Previously if the split type was "hsplit", but `locked_size_x` was 
falsy, `locked_size_y` was wrongly used.
2021-09-15 22:38:09 +02:00
Guldoman 9bfec4aca5 Ensure that the primary node always has a `View` 2021-09-15 22:38:09 +02:00
Guldoman fb955e4e12 Only check if sibling is locked in the split direction
If the sibling is not locked in the direction of the split, it should 
fill the space.
2021-09-15 22:38:09 +02:00
Guldoman 1e8031a0e8 Fix checking if sibling is locked when removing `View`s
We only checked if sibling was locked in the `x` direction.
2021-09-15 22:38:09 +02:00
Adam Harrison e9f48ce949 Added in sample plugin and tested things out. Works. 2021-09-14 00:13:30 -04:00
Adam Harrison a66a76f9c9 Added in searcher. 2021-09-13 23:40:01 -04:00
Francesco Abbate 25744d93ce Merge branch with modifications for 2.0.2 release 2021-09-11 08:19:40 +02:00
Francesco Abbate 218999dff8 Avoid bug when replacement stop at end of string
Detect when we are past the end of the string to avoid by
checking if byte is not nil.

Fix #510.
2021-09-10 14:55:04 +02:00
Francesco Abbate afd0672197 Use line/col to identify selection in replace command 2021-09-10 14:54:55 +02:00
Francesco Abbate cec1e4efb9 Do not fail search if there was an option change 2021-09-09 23:30:18 +02:00
Francesco Abbate d9afc40a17 Bring back command find-replace:select-next
Bring back the command like before to keep single selection but with
ctrl+f3 keybindings. Change the name of the new multi-cursor command
but keep the ctrl+d keybinding.
2021-09-09 21:40:41 +02:00
Guldoman aa0e083cb9 Allow `find-replace:select-next` to select more occurrences after wrap
The initial position for the search is defined by the last selection 
towards the end of the file.
After reaching the end of the file, it would always select the same 
selection to start the search from.

Now, we start the search from each selection, until a new occurrence is 
found.
2021-09-09 21:38:12 +02:00
Francesco Abbate 4964c30e12 Bring back command find-replace:select-next
Bring back the command like before to keep single selection but with
ctrl+f3 keybindings. Change the name of the new multi-cursor command
but keep the ctrl+d keybinding.
2021-09-09 19:12:56 +02:00
Guldoman 17185075c6 Allow `find-replace:select-next` to select more occurrences after wrap
The initial position for the search is defined by the last selection 
towards the end of the file.
After reaching the end of the file, it would always select the same 
selection to start the search from.

Now, we start the search from each selection, until a new occurrence is 
found.
2021-09-09 18:43:08 +02:00
Francesco Abbate 04250a206a Add previous find and replace in session 2021-09-09 15:42:16 +02:00
Francesco Abbate 403b7f6fb6 Add missing remove tooltip call 2021-09-09 15:42:16 +02:00
Francesco Abbate b440a22581 Remeber initial user text for hidden suggestions
When using hidden suggestions remember the text user was typing when
navigating suggestions.

Ensure also that in the previously searched expressiosn we have no
duplicate entries.
2021-09-09 15:42:16 +02:00
Francesco Abbate fa8b3b33b1 Use hidden suggestions also for replace dialog 2021-09-09 15:42:16 +02:00
Francesco Abbate 4bcc1cc07c Fix error with hidden suggestions
Avoid indexing a nil if there are no suggestions.
2021-09-09 15:42:16 +02:00
Francesco Abbate f85fe102d9 Implement hidden suggestions for find dialog 2021-09-09 15:42:16 +02:00
Francesco Abbate dfb64fbdf1 Do not add selection with newlines in replace
If the selected text containes newlines it doesn't make sense to
use it as the initial text in the "replace text" command view.

Do not use the selected text if a newline is found in the selection.

Fix #511.
2021-09-09 15:39:41 +02:00
takase1121 7a24dbb17e revert new keyboard bindings 2021-09-09 07:44:58 +02:00
takase1121 1a21c66353 add autocomplete:cycle
Some (probably lots) of people are used to tabbing through autocomplete.
now, tab is binded to autocomplete:cycle while enter is binded to
autocomplete:complete.
2021-09-09 07:44:58 +02:00
takase1121 5cc23348a1
reverse the order of args in keymap.unbind 2021-09-08 23:17:50 +08:00
takase1121 7e4236a82f
add keymap.unbind(), update contextmenu to use keymap.get_binding()
This is something probably people are looking for...
2021-09-08 23:11:36 +08:00
Guldoman 0a52861129 Revert horizontal scroll implementation 2021-09-08 07:11:50 +02:00
Guldoman 0a36e66aba Fix `treeview:open-in-system` command on Windows
The first argument is the title for the `CMD` window.
2021-09-07 22:35:56 +02:00
Guldoman 474952645c Fix `treeview:open-in-system` command on Windows
The first argument is the title for the `CMD` window.
2021-09-07 22:33:48 +02:00
Francesco Abbate 2b277bb502 Fix problem with -psn argument on macOS 2021-09-07 06:44:15 -07:00
Francesco Abbate 67d7b894ae Add initial suggestion in open-project-folder 2021-09-07 15:23:41 +02:00
Francesco Abbate 90c721b823 Adopt bigger fonts by default 2021-09-07 15:11:20 +02:00
Guldoman f9c7eeeeb8 Check if session file returned anything 2021-09-07 15:03:00 +02:00
Guldoman 3278eebdad Avoid exposing `treeview` commands when not usable 2021-09-07 15:03:00 +02:00
Guldoman 9887dd4746 Make open files follow renames 2021-09-07 15:03:00 +02:00
Guldoman 59aa7f0090 Fix absolute path detection in `core.project_absolute_path` 2021-09-07 15:03:00 +02:00
Guldoman de4072e207 Avoid checking for unique selections on non-`DocView`s 2021-09-07 15:03:00 +02:00
Adam Harrison b7f2d1ad03 Forgot to return an 'n'. 2021-09-07 15:03:00 +02:00
Adam Harrison 7811660caf Fixed replace to make it multicursor-aware. 2021-09-07 15:03:00 +02:00
Timofffee 604626fa32 Fix macOS keymap 2021-09-07 15:03:00 +02:00
Adam Harrison 1d61cf989f Fixed cursor movement. 2021-09-07 15:03:00 +02:00
Adam Harrison d352eb1cb9 Fixed cursors moving around with removal and inserts with cursors. Also fixed drawing line highlights with multicursors. 2021-09-07 15:03:00 +02:00
Adam Harrison 9d4e944549 Added in two new VSC-style multicursor shortcuts. 2021-09-07 15:03:00 +02:00
Francesco Abbate 68c1cc606f Bring back min len autocomplete default to 3 2021-09-07 15:03:00 +02:00
Guldoman e93bbc559c Fix crash in project search when project has no files 2021-09-07 15:03:00 +02:00
Guldoman d3bd35b577 Use plain `string:find` when matching plugin directories 2021-09-07 15:03:00 +02:00
Guldoman 7f338fc993 Allow tabs to always be visible 2021-09-07 14:59:03 +02:00
Takase fb907c9bf4 increase code readibility 2021-09-07 14:59:03 +02:00
takase1121 97493a1a4e add doc:get_selection_text() 2021-09-07 14:59:03 +02:00
takase1121 30d3751632 remove unused variable 2021-09-07 14:59:03 +02:00
takase1121 14565b5226 more changes to logview
- remove draw_text_elipsis
- remove clip rect operations
- fix text drawing when expanded
- simplify code
2021-09-07 14:59:03 +02:00
takase1121 e25ea1196a add context menu options for logview 2021-09-07 14:59:03 +02:00
takase1121 622b162225 add core.get_log() 2021-09-07 14:59:03 +02:00
takase1121 afaf0a718d improve logview
The logview is now less cluttered.
The filename and stack trace (if any) is hidden by default.
The user can click on the log entry to expand it.
2021-09-07 14:59:03 +02:00
Francesco Abbate 28e8a98ffc Fix error in change-project-folder command 2021-09-07 05:21:45 -07:00
Francesco Abbate 3cc4cd1ada Fix error when opening root directory 2021-09-07 05:09:26 -07:00
Guldoman 444c929e3c Add commands to manage tab style 2021-09-07 07:53:03 +02:00
Guldoman 0d2a89cb76 Don't use threads in `detectindent`
As it's execution only happens on load/save.
2021-09-07 07:53:03 +02:00
Guldoman 501be5fdfe Use configured indent values if `detectindent` can't detect them 2021-09-07 07:53:03 +02:00
Guldoman e99c76f8b8 Update `detectindent` cache only after saving/reloading
Before, if the indent wasn't fully detected, `detectindent` would try to 
update every second. On files with very long lines this would cause 
stutters.

Now the indent is updated only once after saving/reloading.
2021-09-07 07:53:03 +02:00
Francesco Abbate 4f68f7fd92 Try to fix problem with js syntax of '/=' operator
The operator '/=' was wrongly considered by the js syntax file as the
beginning of a regexp literal.

With this modification we modify the pattern for regexp literals to not
match expressions starting with '/='.

This doesn't seem entirely correct because apparently javascript can accept
regexp literals starting with '/=' but the rule used by the javascript
lexer is not known.
2021-09-06 09:31:17 +02:00
Guldoman 371914af67
Check if session file returned anything 2021-09-04 00:32:01 +02:00
Guldoman e559afaefc
Add a simple cache to `DocView:get_h_scrollable_size`
This function gets called at every `core.step`, so we should avoid
having to recalculate the scrollable size every time, as it could get
very expensive on long lines.
2021-09-03 00:55:10 +02:00
Guldoman f18629ab64 Avoid exposing `treeview` commands when not usable 2021-09-02 23:19:40 +02:00
Guldoman 167cda23f6 Make open files follow renames 2021-09-02 23:19:40 +02:00
Guldoman 46d1203d08
Fix absolute path detection in `core.project_absolute_path` 2021-09-02 18:58:24 +02:00
Guldoman f31312fd16
Avoid checking for unique selections on non-`DocView`s 2021-09-01 16:29:47 +02:00
Guldoman a920e5b0e6
Avoid setting a new file as dirty if it is empty 2021-08-31 23:16:02 +02:00
Adam Harrison e541236c22 Forgot to return an 'n'. 2021-08-31 16:21:40 -04:00
Adam Harrison 1c4a4e763e Fixed replace to make it multicursor-aware. 2021-08-30 22:56:33 -04:00
Adam 8d6ac47cd0
Merge pull request #451 from Timofffee/fix-macos-keymap
Fix macOS keymap
2021-08-30 13:37:07 -04:00
Guldoman 235b1f0385 Avoid recreating `line_numbers` table when a recalc is needed 2021-08-30 17:58:22 +02:00
Guldoman 4d0656ad7e Avoid recreating tables when calculating the longest lines 2021-08-30 17:58:22 +02:00
Guldoman 92bbb30d06 Split vertical and horizontal scrollbar-related functions and variables 2021-08-30 17:58:22 +02:00
Guldoman 4a03aec073 Set horizontal scroll size to be more in line with other editors
Only scroll enough to see the whole line.
2021-08-30 17:58:22 +02:00
Guldoman 2d33fdc656 Show correct mouse cursor when hovering the horizontal scrollbar 2021-08-30 17:58:22 +02:00
Guldoman 5c7b133e0b Add horizontal scrollbar
Classes and plugins that relied on having only the vertical scrollbar 
should continue working.
2021-08-30 17:58:22 +02:00
Guldoman f106993d0e Fix discrepancy in max line length
The line length calculated in `Doc:load` didn't account for the newline 
that gets added.
2021-08-30 17:58:22 +02:00
Guldoman 3e6afeccc0 Remove line from longest lines table only if needed
Checking if a line needs to be removed is faster than just trying to 
remove it.
2021-08-30 17:58:22 +02:00
Guldoman c16145d562 Define horizontal scrollable size for `DocView` 2021-08-30 17:58:22 +02:00
Guldoman f1ca00fbed Extend `View` to allow horizontal scrolling 2021-08-30 17:58:22 +02:00
Guldoman e52362e55f Make `Doc` keep track of max line length 2021-08-30 17:58:22 +02:00
Adam 3eb6f1dbd4
Merge pull request #430 from adamharrison/vsc-multicursor-shortcuts
Added in two new VSC-style multicursor shortcuts.
2021-08-30 10:52:09 -04:00
Francesco Abbate e94718c5c4 Bring back min len autocomplete default to 3 2021-08-30 14:35:42 +02:00
Timofffee 6e5452844c Fix macOS keymap 2021-08-30 16:21:16 +04:00
Adam Harrison 4ae16615e8 Fixed cursor movement. 2021-08-29 20:05:58 -04:00
Adam Harrison bbe4e21f52 Fixed cursors moving around with removal and inserts with cursors. Also fixed drawing line highlights with multicursors. 2021-08-29 17:54:57 -04:00
Guldoman ab6eac399c Fix crash in project search when project has no files 2021-08-29 11:13:39 +02:00
Guldoman 76334a7946 Use plain `string:find` when matching plugin directories 2021-08-29 11:11:19 +02:00
takase1121 30ccde896d
replace unpack() with table.unpack()
I have no idea unpack() is still used and how it still worked.
2021-08-29 09:14:12 +08:00
Adam Harrison 58f4963ade Added in two new VSC-style multicursor shortcuts. 2021-08-28 13:42:06 -04:00
Francesco Abbate ccba91261d Merge remote-tracking branch 'origin/fix-2.0.1' 2021-08-28 17:37:55 +02:00
Francesco Abbate f1c004411c Add missing home_encode for change-project-folder 2021-08-28 08:08:53 -07:00
Daniel Rocha 2b1c157a36 Refactored minimum scale bug fix code 2021-08-28 16:00:41 +02:00
Daniel Rocha 49ec7c88e8 Fix the additional four spaces to two spaces in the indent 2021-08-28 16:00:41 +02:00
Daniel Rocha dac3a9cba5 Fix minimal scale possible 2021-08-28 16:00:41 +02:00
Daniel Rocha 95e86b040b Refactored minimum scale bug fix code 2021-08-28 13:00:33 +02:00
Daniel Rocha 8335b11273 Fix the additional four spaces to two spaces in the indent 2021-08-28 13:00:33 +02:00
Daniel Rocha e342a017e1 Fix minimal scale possible 2021-08-28 13:00:33 +02:00
Francesco Abbate 06252382ec Fix focus problem with NagView with root:close-all
Fix provided by @Guldoman in PR:

https://github.com/lite-xl/lite-xl/pull/419
2021-08-28 00:21:29 +02:00
Francesco Abbate 4f8de02bcf Remove unused Object's method "implement"
Not used in the code base.
2021-08-28 00:08:30 +02:00
Francesco Abbate d46475532f Introduce View objects context property
Used to determine if an instance of the given class should
be closed or not when a project session is terminated.
2021-08-27 23:55:17 +02:00
Francesco Abbate 9592ce85f5 Revert "Further simplifies logic for active view in close-all command"
This reverts commit bb6b99b167.
2021-08-27 23:20:08 +02:00
Guldoman c7d044f178 Allow tabs to always be visible 2021-08-27 20:43:13 +02:00
Francesco Abbate a8f4c0c4e5 Set initial text for core:change-project-folder 2021-08-27 15:22:09 +02:00
Francesco Abbate bb6b99b167 Further simplifies logic for active view in close-all command 2021-08-27 14:42:57 +02:00
Francesco Abbate 7f4d9789d6 Simplify commit daf91676 about active view setting 2021-08-27 13:02:28 +02:00
Francesco Abbate 456f6eda65 Do not use os.exit to exit the application
Properly quit the application by terminating the core.run()
function. Otherwise a BadWindow event was happening when
closing the window.
2021-08-27 00:17:50 +02:00
Francesco Abbate daf916769f Fix bug with close-all command
There are really multiple things here in the close_all_docviews
function:

1. we reset the Node's tab_offset
2. we ensure the core's active_view is properly set
3. we close LogViews as well as DocViews

Some conditions seems to never happen but we stay safe and try
to cover all possible cases.
2021-08-27 00:13:40 +02:00
Francesco Abbate dc501cb41a Fix plugin version check 2021-08-25 23:45:18 +02:00
Takase 816ceb4493 increase code readibility 2021-08-24 11:35:53 +02:00
takase1121 cf7ebdad1f add doc:get_selection_text() 2021-08-24 11:35:53 +02:00
takase1121 1d9f04e7d6 remove unused variable 2021-08-24 11:31:22 +02:00
takase1121 6ac1428b51 more changes to logview
- remove draw_text_elipsis
- remove clip rect operations
- fix text drawing when expanded
- simplify code
2021-08-24 11:31:22 +02:00
takase1121 2fec3052ce add context menu options for logview 2021-08-24 11:31:22 +02:00
takase1121 7c3daa0f39 add core.get_log() 2021-08-24 11:31:22 +02:00
takase1121 cb639700b3 improve logview
The logview is now less cluttered.
The filename and stack trace (if any) is hidden by default.
The user can click on the log entry to expand it.
2021-08-24 11:31:22 +02:00
Francesco Abbate b76917ef9e Require modversion 2 2021-08-19 14:37:03 -07:00
Francesco Abbate d9e73a97ea Merge remote-tracking branch 'harens/macos-bundle' 2021-08-19 11:32:36 +02:00
harens 2d088256b1
Add unix-like behaviour on macOS
Closes https://github.com/lite-xl/lite-xl/issues/398
2021-08-18 13:26:51 +01:00
Adam Harrison b6af395fc7 2.0 changelog and modversion updates. 2021-08-17 20:24:44 +02:00
Adam 2ea62eee8f
Merge pull request #391 from adamharrison/fix-replace-tooltip
Added in additional function to remove tooltip after cancelling replace.
2021-08-14 09:12:20 -04:00
Adam 9e45b1de58
Merge pull request #390 from adamharrison/cursor-fixes
Fixed multilne cursors at the edges of docuemnts.
2021-08-14 09:12:13 -04:00
Adam Harrison 5f1e68b824 Added in additional function to remove tooltip after cancelling replace. 2021-08-14 09:11:07 -04:00
Adam Harrison 8e9c410d27 Fixed multilne cursors at the edges of docuemnts. 2021-08-14 08:59:37 -04:00
Adam 37dcc4725f
Merge pull request #376 from adamharrison/clipboard-fix
Added in a hash check to the system clipboard.
2021-08-12 15:30:50 -04:00
Adam db3e9cb914
Merge pull request #384 from adamharrison/fix-multi-directory
Handle proper path normalization if we begin with '..'.
2021-08-12 09:53:16 -04:00
Adam f3e750ccb4
Merge pull request #378 from adamharrison/close-other-tabs
Added in close others, and refactored close all.
2021-08-12 09:53:04 -04:00
Adam d9fc6d407b
Merge pull request #377 from adamharrison/regex-anchored
Fixed small bug on bootup, and added in a multiline qualifier to replacements.
2021-08-12 09:52:54 -04:00
Francesco Abbate 3396a6c802 Use the start.lua file in data/core as a template
Instead of having a separate start.lua.in file in the scripts directory
and no start.lua file in data/core we use the file data/core/start.lua
as a template for Meson to generate the final start.lua file for release.

In this way people naturally trying to run lite-xl from the source folder
will have a start.lua file albeit without a resolved version number.

Otherwise, when using run-local script or the meson install command the
meson-generated start.lua file will be used as it should be.
2021-08-12 10:35:32 +02:00
Adam Harrison e2a7578553 If multiple '..' handle correctly. 2021-08-11 20:54:03 -04:00
Adam Harrison 5e66f74f38 Handle proper path normalization if we begin with '..'. 2021-08-11 19:19:58 -04:00
Adam Harrison acd122bc34 Small fix. 2021-08-11 18:38:36 -04:00
Adam Harrison aa4d91a03f Reverted hash changes; simply copy entire clipboard. 2021-08-11 18:14:46 -04:00
luarocks 205b52b08a Revert language_lua 2021-08-11 23:33:00 +02:00
luarocks 0bafece6a6 Add textadept theme and correct language_lua just a bit 2021-08-11 23:33:00 +02:00
Adam Harrison c644ca7df6 keep_inactive -> keep_active 2021-08-10 23:29:39 -04:00
Adam Harrison 40c68ffcc6 Pairs -> IPairs 2021-08-10 23:18:30 -04:00
Adam Harrison 851dc07408 Added in close others, and refactored close all. 2021-08-10 23:14:40 -04:00
Adam Harrison 26a77542e3 Fixed small bug on bootup, and added in a multiline qualifier to replacements. 2021-08-10 22:01:28 -04:00
Adam Harrison 255c45b30b Since we're modifying the clipboard, actually makes way more sense to use this hash. 2021-08-10 21:29:33 -04:00
Adam Harrison 71e62ce84f Added in a hash check to the system clipboard. 2021-08-10 21:25:40 -04:00
Adam f3a8e264fe
Merge pull request #370 from adamharrison/home-fixes
Changed behaviour of home.
2021-08-10 14:46:48 -04:00
redtide 3468164518 Updated Meson configuration
- Added version and license metadata
- Configuration data to be used in configured files to set metadata
- Portable binary and directories in the main install directory
- Binary file installed in correct places for all supported platforms
- Freedesktop AppStream support
- Added missing files install rules
2021-08-09 22:26:16 +02:00
Adam Harrison 3c8da0fc3f Added in selection as well. 2021-08-06 18:09:36 -04:00
Adam Harrison 2bf56e67c5 Changed behaviour of home. 2021-08-06 18:08:08 -04:00
Francesco Abbate 0b2bf227a8 Fix inactive divider intercepting mouse clicks
In the function Node:get_divider_overlapping_point() we check if we
hit a divider (separator between two nodes). If yes the event is
intercepted and used to set the cursor and drag the separator if
appropriate.

In reality, on mouse move events, when one of the node is a split
and one of its child is not resizable we don't set the cursor to
and we don't intercept the event. However on a mouse pressed event
the event was intercepted regardless of the fact that the child
nodes are resizable or not. This latter behavior was unwanted as it
prevents mouse clicks to be processed because of a divided that is
inactive.

In addition it prevented processing of mouse clicks when the child
node was invisible leading to issue #363. For this latter the issue
was the invisible NagView in the upper part of the window.

To fix the problem we provide a divider with
Node:get_divider_overlapping_point() only if its child node are
resizable. In this way the mouse clicks or movements are intercepted
only if the divider is actually active.
2021-08-06 09:07:17 -07:00
Francesco Abbate 62bcc6abc2 Fix missing commas in autocomplete module 2021-08-02 10:07:43 +02:00
takase1121 1725b3ab83 revert config.lineguide option 2021-08-02 09:57:21 +08:00
takase1121 3b3677ca4b add config.lineguide option 2021-08-02 09:57:21 +08:00
Adam 47eaca18d8
Merge branch 'master' into Merged 2021-08-01 14:58:36 -04:00
Francesco Abbate 135ad072bd Move gutter width calculation out of loop 2021-07-28 13:02:38 -07:00
cukmekerb 4ad353eb4b fix line number align bug 2021-07-28 13:02:38 -07:00
cukmekerb 63f406773b align line numbers to right 2021-07-28 13:02:38 -07:00
Francesco Abbate 8103f21991 Only load plugins that are lua files
Before trying to load a plugin or checking its version verify if it
looks like a lua file.

Close issue #349.
2021-07-27 23:18:15 +02:00
ep af22a6a824 +readability, hopefully 2021-07-26 03:50:57 -07:00
ep 2df363747b fix workspace folders on different drives in Windows 2021-07-26 03:50:57 -07:00
Adam Harrison 152fd6c66c Fixed doc, and fixed plugin load. 2021-07-20 15:09:14 -04:00
Adam Harrison c461cfae93 Removed unecessary duplicates. 2021-07-20 14:50:40 -04:00
Adam Harrison 0777a6f0b8 Merged dev to master. 2021-07-20 14:39:50 -04:00
Francesco Abbate 7605b626e8 Add language_cpp plugins
Brought form the 1.16.12 release.

It provides support for C++ using multi-part syntax patterns. Take
the priority over C language plugins for header files.
2021-07-19 08:18:38 +02:00
Francesco Abbate d3f1a3a5b2 Bump 2.0-beta1 version 2021-07-17 21:30:25 +02:00
Adam Harrison 6330f4d596 Allowed find to function across different views. 2021-07-15 18:29:48 -04:00
Adam Harrison a218a95c45 Updated keys as well. 2021-07-15 18:21:54 -04:00
Adam Harrison 0dda252096 Reverted find fixes. 2021-07-15 18:15:05 -04:00
takase1121 6bcdaa9d7a Revert "fix number of parameters passed to self:move_towards"
Apparently the LSP intellisense is wrong on this one, this actually
causes an infinite loop
2021-07-15 18:01:27 -04:00
takase1121 169b8abae5 fix number of parameters passed to self:move_towards
self:move_towards(self) causes self to be passed twice, ignoring rate
2021-07-15 18:01:24 -04:00
takase1121 f4f33bd36b remove deprecated code 2021-07-15 18:01:24 -04:00
Francesco Abbate 265501bb9e Fix problem with previous commit
Desastrous problem where core.normalize_path was removing the leading /.
2021-07-15 18:01:18 -04:00
Francesco Abbate e1530c0951 Remove duplicate normalize_path function
Use the function defined in the "common" module.

Move the check for not-nil filename from common.normalize_path
to core.open_doc. In this latter the filename can be nil if a
new unnamed document is created.
2021-07-15 18:01:17 -04:00
Adam Harrison 423cd33810 Typo. 2021-07-15 17:58:14 -04:00
Adam Harrison e539310e6d Namespace plugin-specific configuration settings. 2021-07-15 17:58:14 -04:00
Adam d10865bcc4
Merge pull request #303 from jgmdev/treeview-contextmenu
Added context menu to treeview.
2021-07-13 22:59:24 -04:00
jgmdev afa0c175e8 Added delete confirmation using NagView. 2021-07-12 11:41:31 -04:00
jgmdev a4d5622eda Make use of core.reschedule_project_scan() 2021-07-11 23:03:33 -04:00
Adam e1ae94a01b
Merge pull request #318 from lite-xl/MacOSClose
Created an extra command, to implement appropriate cmd+w behaviour on Mac.
2021-07-09 14:30:48 -04:00
lqdev e5b2a7cbe8 reset blink timer when a new cursor is created 2021-07-01 14:50:28 +02:00
Adam 9126b5e64d
Merge pull request #313 from jgmdev/add-system-rmdir
Added `system.rmdir(path)`, and `common.rm(path, recursive)`
2021-06-29 17:44:58 -04:00
jgmdev 68459a9199 Added context menu to treeview. 2021-06-28 11:11:49 -04:00
jgmdev 4188269cef Added system.rmdir(path)
It is reported that the built-in lua function os.remove(path) does
not removes empty directories on windows. To fix this a system.rmdir
function is introduced that calls a native win32 function.

Also common.rm(path, recursively) was added which wraps system.rmdir()
to easily delete an entire folder with all its contents.
2021-06-28 11:07:27 -04:00
Adam Harrison c2c59e9c99 Fixed XDG issue. 2021-06-28 10:44:40 -04:00
Adam Harrison f899848631 Added in checks so that the entire thing isn't consumed. 2021-06-27 13:27:20 -04:00
Adam Harrison fd3f25608f Created an extra command, to implement appropriat cmd+w behaviour on mac. 2021-06-27 13:18:54 -04:00
Adam Harrison cc568e65fc Changed over ctrl+w keybinding over to cmd+w, as per #311. 2021-06-24 18:00:50 -04:00
Adam 83a604dfb7
Merge pull request #296 from lite-xl/font-copy-api
Add a C API copy method for font_desc objects
2021-06-24 12:47:16 -04:00
Adam Harrison f9edca712d Added in lineguide to core. 2021-06-21 23:21:07 +02:00
Francesco Abbate 1cf0f2009c Add a C API copy method for font_desc objects
Add a renderer.font's method "copy" to clone the font object
by specifying an optional new size. In the size is not given
the size of the original object is used.

Should fulfill the request from issue #288.
2021-06-21 11:18:52 +02:00
Adam Harrison 8b2fb67b9b Fixed regex replace. 2021-06-20 22:24:20 -04:00
Adam Harrison 46e939a3e6 Fixed a minor bug. 2021-06-20 21:34:42 -04:00
Adam Harrison 305921299f Added in tooltips, the ability to swap between different find modes with a keybind. 2021-06-20 21:22:37 -04:00
Adam 2486f253eb
Abstracted out draw caret, so that the line guide can draw under it. (#287)
* Abstracted out draw caret, so that the line guide can draw under it.

* Moved caret drawing out to draw_overlay.
2021-06-20 22:16:35 +02:00
jgmdev 1a51dad23c Added Doc:on_close() for plugins 2021-06-20 00:13:07 -04:00
Adam Harrison bd02095a13 Fixed minor bugs; swap no longer returns from get. 2021-06-18 23:58:55 -04:00
Adam Harrison 704e04396f Rebased, and added the ability for ctrl to just create new cursors. 2021-06-18 17:33:55 -04:00
Adam Harrison 292c98935c Fixed recursion error. 2021-06-18 17:33:55 -04:00
Adam Harrison 3541ab4aa1 Removed unecessary check. 2021-06-18 17:33:55 -04:00
Adam Harrison 0210264552 Made get_selections a bit more flexible. 2021-06-18 17:33:55 -04:00
Adam Harrison b5cbe3a2fb Added in the ability to iterate through cursors backwards. 2021-06-18 17:33:55 -04:00
Adam Harrison dfc57bd884 Used routine to add cursors in order correctly. 2021-06-18 17:33:55 -04:00
Adam Harrison 6915d86d59 Introduced the constraint that all cursors must be in order. 2021-06-18 17:33:55 -04:00
Adam Harrison b065b52067 Ensured that textual inputs sort cursors so that we don't get *real* weird behaviour. 2021-06-18 17:33:55 -04:00
Adam Harrison 0f229b039d Fixed merging. Fixed selection undo stack. 2021-06-18 17:33:55 -04:00
Adam Harrison c494d52caf Used an inappropriate function in a selection loop. 2021-06-18 17:33:55 -04:00
Adam Harrison d3b3f26316 Added in cursor merging behaviour. 2021-06-18 17:33:55 -04:00
Adam Harrison c6f7e473f0 That's what I get for not testing after a 'simple' refactor. 2021-06-18 17:33:55 -04:00
Adam Harrison 858f7a2a50 Added in missing boolean. 2021-06-18 17:33:55 -04:00
Adam Harrison 75658b4f3f Removed unecessary elses. 2021-06-18 17:33:55 -04:00
Adam Harrison 2475b1624f Fixed error. 2021-06-18 17:33:55 -04:00
Adam Harrison b42708fe56 Cleaned up functions. 2021-06-18 17:33:55 -04:00
Adam Harrison 316671e5b7 Fixed tabbing spaces. 2021-06-18 17:33:55 -04:00
Adam Harrison 6c0d124410 Allows for rectangular selections with ctrl; also fixed tabbing. 2021-06-18 17:33:55 -04:00
Adam Harrison 08ab6cba05 Added in multiple clipboard line buffers. 2021-06-18 17:33:55 -04:00
Adam Harrison a7f39017ff Fixed undo stack. 2021-06-18 17:33:55 -04:00
Adam Harrison 93670a314d Changed iterator behaviour to avoid allocating a closure each time. 2021-06-18 17:33:55 -04:00
Adam Harrison 37a3884ee2 Initial commit of multicursor. Next step is to investigate how multicursor works on various other IDEs and ape those. 2021-06-18 17:33:55 -04:00
cukmekerb e493fa1b0a clicking the empty space where the x was no longer closes the tab 2021-06-17 21:15:30 -07:00
cukmekerb e1d85af69b added config.tab_close_button option to hide X on tabs 2021-06-17 18:35:36 -07:00
jgmdev e9e1214e59 [plugin/scale] fixed wrong increase and decrease
If the user manually set the desired scale by calling scale.set(1.60)
the scale_level was not set accordingly which meant that later doing
a Scale:Increase/Decrease command yielded incorrect scale amount.
2021-06-17 20:58:22 -04:00
Adam 5151e36981
Added in the ability to customize the config directory used with the environment variable XDG_CONFIG_HOME. (#271) 2021-06-17 23:15:08 +02:00
Adam bdc37f1f6c
Added in remove file function. (#272)
* Added in remove file function.

* Changed namespace of rename and remove (now delete).
2021-06-17 22:26:27 +02:00
Francesco Abbate 1ad4289e76 Do not try to update topdir folder in treeview
If the directory expanded is a project's top directory
do not attempt to update its content.

Fix again issue #275
2021-06-17 19:07:32 +02:00
Francesco Abbate 4c9083398a Fix error in dirname computation in TreeView
In TreeView:on_mouse_pressed() we need to find the directory a
relative filename belongs to from its absolute filename.
The code was using string.find to locate the relative filename
within the absolute path but in some very specific cases we can
find a pattern which is not the right-most one leading to a
wrong directory name.

Fix the error by adding a loop to make sure we find the right-most
match. The standard Lua library has not a string.rfind to make a
reverse search.

Close #275
2021-06-17 18:23:30 +02:00
Francesco Abbate b39db791f9 Do not duplicate RootView method in contextmenu
The method RootView:on_mouse_pressed was copied in the contextmenu plugin with
a small modification to intercept the mouse clicks of the active view.

This approach is problematic because a relatively large portion of code is
duplicated.

We introduced a function named RootView.on_view_mouse_pressed to let plugins
like contextmenu intercepts mouse clicks in the active area without duplicating
the function RootView:on_mouse_pressed.
2021-06-17 10:22:31 +02:00
Adam Harrison 2fc245eb69 Added in an interface to the scale plugin. 2021-06-14 20:33:15 -04:00
Adam Harrison aed643893e Fixed contextmenu to play nice with dragging nodes. 2021-06-14 09:23:04 -04:00
jgmdev e070dbebc1 Fix undeclared NagView findindex() by moving it to common. 2021-06-13 21:28:29 -04:00
Francesco 98164f6d4f
Integrate mkdirp function in common module (#265)
Move the function mkdirp into common to be generally available.

Use the new common.mkdirp from create_user_directory() from
core/init.lua replacing previous parent directory creation code
within the function.

The previous mkdirp function did not work on Windows where
absolute paths starts with a drive letter. The code from
create_user_directory() did not have this problem but was wrong
in the way it was creating the nested directories.

The new implementation in common.mkdirp fix both problems.
2021-06-13 19:50:42 +02:00
Jefferson González 9823da8531
Merge pull request #267 from jgmdev/nagview-fix
Added missing NagView dialog commands to startup.
2021-06-12 23:14:17 -04:00
Adam Harrison 66b76f15c2 Added a check for duplicate tabs, also ensured that the appropriate view is set as active. 2021-06-12 14:24:31 -04:00
Adam Harrison a18eeafbc8 Added in some more checks. 2021-06-12 13:43:58 -04:00
Adam Harrison f729d7d008 Allows you to drag nodes around splits. 2021-06-12 13:43:58 -04:00
Francesco Abbate 752ecd5ece Group mouse move events from C API function
Groups together consecutive mouse move events like done in core.step()
lua function but on the C side.

It does not introduce any meaningful speedup but it theory is more efficient and
simplifies the Lua code.

The simplification of the Lua code alone is enough to justify this change?
2021-06-11 15:00:18 +02:00
jgmdev 9153f5695d Added missing NagView dialog commands to startup. 2021-06-09 20:13:23 -04:00
Björn Buckwalter 702ab2625c
MacOS modifier key adjustment (replace `alt`) per #262 (#263)
* Use `cmd` as modifier key for tab seletion (macos)

Part of #262.

* Use `cmd+shift` instead of `alt` on macos

Fixes #262.
2021-06-09 20:23:40 +02:00
Björn Buckwalter ef48d5d48c Use `ctrl` for next tab on macos
Fixes #261.
2021-06-08 16:13:00 +02:00
Francesco Abbate e7d0709828 Fix error in workspace file error reporting 2021-06-08 12:06:54 +02:00
Jefferson González b4896ed69e
[plugin/contextmenu] Append itemsets that where registered. (#258) 2021-06-07 23:29:03 +02:00
Takase 0fd1fa8872
Commands refactor (#257)
* remove unecessary check

* move command registration to core/commands
2021-06-07 23:00:29 +02:00
Takase 130b29438a
Allow creation of nested directories (#254)
* allow nested directories to be created

* fix / be turned into //

* refactor error handling

* refactor path splitting and mkdir calls

If a path exists it will now return immediately.

* fix typo

* remove possible trailing empty string

* fix bugs with path check
2021-06-07 22:44:35 +02:00
Adam Harrison 2170ab9649 Apologies for the subpar previous commit. This fixes the bugs in that one. 2021-06-05 00:50:25 -04:00
Adam Harrison 090d67f252 Exposed indent function, and made it more flexible. 2021-06-05 00:44:35 -04:00
Adam Harrison 3b816a2b4a Changed regex error handling, so that errors can be handled gracefully in lua, and made it so gsub returns the exact matches and replacements. 2021-06-04 23:58:17 -04:00
takase1121 cd5c64fe8c prevent mouse movement from propagating when context menu is open 2021-06-05 08:51:17 +08:00
takase1121 794cf3813a export context menu 2021-06-05 08:47:32 +08:00
Francesco Abbate c5acd030a1 Do not save log views in session file 2021-06-04 14:42:08 +02:00
Francesco Abbate 29e25a7605 Do not show empty documents when restoring session
When a filename cannot be read when restoring a session do
not create a document. Previous behavior was to create an empty
"unsaved" document.
2021-06-04 14:05:54 +02:00
Francesco b046afccf9
Scale fonts context menu (#246)
* Retrieve scale plugin from lite-plugins

* New implementation of scale plugin and font C API

Introduce two new C API functions, renderer.font.get_size and set_size
respectively to get the font size and to set the size to a new value.

Using these functions we don't need to know the name of the font but
we can just change their size.

Adapt the scale plugin to use the new C API function with minor adaptations
in the logic.

Use smaller step to scale fonts.

Rename font_desc_free function, previous name was misleading as only the cached
resources are freed.

* Add contextmenu plugin from takase

From https://github.com/takase1121/lite-contextmenu

Adapted to show font scaling commands and find/replace commands.

i#	testing.lua

* Fix the cursor flickering with contextmenu

To avoid flickering of the cursor when using the context menu
we add a new function `core.request_cursor` that just take note
of the cursor requested.

The cursor will be actually changed only in root_view:draw() method
only when all the drawing operations are done. This means the cursor
will be changed only once per frame and only the most recent cursor
change request will take effect.

* Remove unneeded scale plugin return functions
2021-06-03 22:49:37 +02:00
Adam 248d70a8ca
Add PCRE to support regular expressions
Use regular expressions instead of Lua patterns for find and replace editor commands.

Syntax files can now use regex or Lua patterns as before keeping backward compatibility for plugins.
2021-06-02 21:27:00 +02:00
lqdev ea5e9b0ce5 fixed broken Doc:save monkeypatch 2021-06-02 19:11:59 +02:00
Francesco Abbate 4e93eabbac Deprecate core.add_save_hook to override Doc:save
In order to stay simple and closer to the lite's design principles we
deprecate the core.add_save_hook function and the related mechanism.
Instead we now directly override the Doc:save() method.

The method is already overrided from core.init to add the automatic
reloading of style when user's module is saved.

The cleanup is related to the discussion in issue #229.
2021-05-31 09:41:37 +02:00
Francesco Abbate 6d044224c1 Starts maximized only if it was in previous session 2021-05-28 16:35:25 +02:00
Francesco Abbate f7e3e41ab1 Fix problem with mouse cursor over dividers 2021-05-28 15:35:46 +02:00
redtide 818a7abb0a Avoid to restore window size when maximized (#226) 2021-05-28 08:51:39 +02:00
Adam 4ffb5e3672
Fixed commenting and uncommenting. (#224) 2021-05-28 08:17:49 +02:00
Francesco Abbate 34e38dd04a Fix missing check for filename when saving a file
Close #225
2021-05-27 18:53:31 +02:00
Francesco Abbate ee25e3c5f4 Reduce number of used lines in detectindent 2021-05-27 16:25:49 +02:00
Francesco Abbate 0a55b246b5 Use thread in detectindent plugin 2021-05-27 16:25:49 +02:00
Francesco Abbate ad7d17caca Use FiraSans regular for UI 2021-05-27 13:49:33 +02:00
Francesco Abbate fe828b6ed9 Update changelog and release number 2021-05-27 13:46:51 +02:00
Francesco Abbate 934f12cded Fix bug with titleview close button not working
The bug was actually due to a presence of a ghost tab scrolling button
in all the views.

We need to check if the node has multiple views, if not there are no tabs
and therefore no scrolling button areas so we return nothing from the
method Node:get_scroll_button_index().

Close #216
2021-05-27 09:02:19 +02:00
Janis-Leuenberger 1394c53dbc
Improve user feedback for big directories (#223) 2021-05-27 08:28:58 +02:00
Adam Harrison f1a4bf8218 Changed to multiline select. 2021-05-26 17:52:01 -04:00
liquidev cb610055d0
support for font changing in the syntax highlighter 2021-05-26 19:16:56 +02:00
Francesco Abbate 10fde6e264 Implement lazy loading of directories
When the number of files in a project directory is above the max
limit switch back to a mechanism to read directory content only
when the corresponding folder is expanded in the treeview.

When the command core:find-file is invoked the command core:open-file
is executed instead because the complete list of the project's
files is not available.

When a project search is done we search through all the files within
the project dir without indexing them.

Address issues #217 #203 #183.
2021-05-26 14:22:10 +02:00
Adam Harrison 8acb3fae8c Fixed minor error that occurs when saving as after viewing a non-doc tab. 2021-05-24 17:26:16 -04:00
Francesco Abbate f17f5a4d6d Fix problem with filenames missing normalization 2021-05-24 15:58:49 +02:00
Francesco Abbate 739763675e Check the real absolute path of user module
Close issue #212
2021-05-22 23:32:45 +02:00
Francesco Abbate 217360ed31 Switch to FiraSans and JetBrainsMono fonts 2021-05-22 15:09:54 +02:00
Adam a254d393db
Indent Enhancements (#202)
* Indent enhancements.

* Fixed to match style guidelines.

* Added in useful explanatory comment.

* Changed which selection we're using, as we don't want this kind of wrapping to happen.

* Fixed bug involving lines full of whitespace.

* Removed unecessary commit.

* Actually reverted function, so that we don't screw up commenting.

* Fixed hard tab issue.
2021-05-22 15:01:19 +02:00
Francesco Abbate abc69a7a19 Prepare release 1.16.10 2021-05-22 14:55:58 +02:00
Adam 949692860e
Tokenizer cleanup (#198)
* Cleaned up tokenizer to make subsyntax operations more clear.

* Explanatory comments.

* Made it so push_subsyntax could be safely called elsewhere.

* Unified terminology.

* Minor bug fix.

* State is an incredibly vaguely named variable. Changed convention to represent what it actually is.

* Also changed function name.

* Fixed bug.
2021-05-20 21:58:27 +02:00