Jipok
8178fc46bb
Add some comments to style
2021-12-20 17:12:37 +05:00
Jipok
c353dd6eda
Add for config.highlight_current_line new variant: no_selection
2021-12-20 16:23:01 +05:00
Guldoman
29318be9c7
Consume unmatched character correctly
...
We must consume the whole UTF-8 character, not just a single byte.
2021-12-20 12:04:20 +01:00
Francesco Abbate
37c00c877a
Ensure TreeView cache entry is removed on delete
...
Address issue:
https://github.com/lite-xl/lite-xl/issues/689
Attempt to provide a more accurate fix to commit:
59f64088e1
For this latter what happens is that any change inside a directory
cause the corresponding entry to be folded in the TreeView.
The new change is more accurate because we remove only the stale
entry corresponding to the delete event and we do not reset the
cache of the parent directory using the modify event.
2021-12-20 11:03:49 +01:00
Francesco Abbate
405bd1c2bd
Fix logic in project's file insertion
...
The function "file_search" in core.init was sometimes giving a wrong index
value, off by one.
The problem happened for example when the entry to search was "less than"
the first entry, the function returned a value of two instead of one as
expected.
The bug was easily observed creating a new directory with a name that comes
as the first in alphabetical order within the project.
2021-12-20 09:05:45 +01:00
Guldoman
23f83857c5
Don't search if there are no files
2021-12-20 08:40:43 +01:00
Jipok
0461d3bdce
Predifined colors: good, warn, error, modified
2021-12-20 01:51:52 +05:00
Jipok
4183d3b2fd
Add predefined colors to style: good, bad
2021-12-20 01:27:53 +05:00
Guldoman
2e9619f630
Directly link to our repo
2021-12-19 18:13:19 +01:00
takase1121
695c7bf781
add instruction when logview is open
2021-12-19 09:36:43 +08:00
takase1121
1526cd176c
move selection logic to mouse click
2021-12-19 09:36:24 +08:00
Adam
7ae33bf6f4
Merge pull request #738 from adamharrison/restart-keymap
...
Added in restart keymapping.
2021-12-18 13:44:04 -05:00
takase1121
becdb99222
center icons to accomodate for size difference
2021-12-18 22:42:33 +08:00
takase1121
31df408d93
make timestamp fix sized
2021-12-18 20:11:50 +08:00
takase1121
fd3b4334ce
add clipping to drawing log items
2021-12-18 20:11:24 +08:00
takase1121
b5dff196f6
make error icon red
2021-12-18 20:10:25 +08:00
takase1121
ab4ecd515b
multiple improvements to logging
...
- added style.log table
- removed contextmenu
- use ctrl+click to copy individual log entries
- use icon instead of + or - for log items in logview
2021-12-18 10:51:44 +08:00
Adam Harrison
b7631ba44a
Added in restart keymapping.
2021-12-15 16:50:38 -05:00
Adam
dadfa4b3e8
Merge pull request #729 from adamharrison/fix-treeview-clicking
...
Fix TreeView and StatusView clicking
2021-12-11 19:05:52 -05:00
Adam
9a813c818b
Merge pull request #715 from Guldoman/split_rootview
...
Split `Node` and `EmptyView` from `RootView`
2021-12-11 18:15:33 -05:00
Adam Harrison
ff5c3c1492
Also fixed statusview.
2021-12-11 18:00:42 -05:00
Jipok
7381a13d6f
Revert "Make pasting multiple lines from clipboard same way as a single line"
...
This reverts commit 6a135f7c06
.
2021-12-12 02:23:47 +05:00
Guldoman
4faaf089ef
Consume unmatched character correctly
...
We must consume the whole UTF-8 character, not just a single byte.
2021-12-11 03:43:33 +01:00
Jipok
6a135f7c06
Make pasting multiple lines from clipboard same way as a single line
2021-12-10 19:25:28 +05:00
Jipok
4a563ddea1
Delete old forgotten self.cursor_clipboard
2021-12-10 19:23:49 +05:00
Jipok
4eee123eff
Make cursor_clipboard globa, not per doc
2021-12-08 17:34:10 +05:00
Guldoman
7cb2068bb8
Split `Node` and `EmptyView` from `RootView`
2021-12-06 22:28:29 +01:00
Jipok
acc7ceefd4
Correct paste after 'Cut/copy whole line'
2021-12-06 17:59:49 +05:00
Jipok
93d9e61a03
Copy/cut whole line if selection empty
2021-12-05 20:30:03 +05:00
Guldoman
5029e2ce29
Add name to plain text fallback syntax
2021-12-02 22:34:49 +01:00
Adam Harrison
01e38f041a
Used basenames for ignore_files rather than full paths.
2021-11-27 13:16:49 -05:00
Adam
a607ef95f9
Merge pull request #682 from Guldoman/indent_refactor
...
Refactor how to get the indentation of a `Doc`
2021-11-27 11:55:36 -05:00
Adam
4767ffe58d
Merge pull request #693 from adamharrison/fix-scrollbar-split
...
Added in check to make sure you can use a scrollbar on a split.
2021-11-27 11:44:22 -05:00
Adam
1b22c85dd5
Merge pull request #694 from adamharrison/fix-context-menu
...
Added in cut, copy and paste to the context menu, amongst other things.
2021-11-27 11:44:10 -05:00
Adam
3e79595e24
Merge pull request #695 from adamharrison/additional-scale-variables
...
Added in additional environment variables to scale off of.
2021-11-26 22:07:32 -05:00
Adam
4e078cc217
Merge pull request #697 from Guldoman/treeview_remove_changed
...
Remove changed files/dirs from `TreeView` cache
2021-11-26 22:07:19 -05:00
Francesco Abbate
0c488c9492
Fix logic in project's file insertion
...
The function "file_search" in core.init was sometimes giving a wrong index
value, off by one.
The problem happened for example when the entry to search was "less than"
the first entry, the function returned a value of two instead of one as
expected.
The bug was easily observed creating a new directory with a name that comes
as the first in alphabetical order within the project.
2021-11-26 13:45:13 +01:00
Guldoman
59f64088e1
Remove changed files/dirs from `TreeView` cache
2021-11-24 06:16:54 +01:00
Guldoman
5dca37b11a
Don't search if there are no files
2021-11-24 05:03:42 +01:00
Adam Harrison
7ee23da187
Added in additional environment variables to scale off of.
2021-11-23 22:30:35 -05:00
Adam Harrison
463605ff41
Fixed event propogation.
2021-11-23 21:56:07 -05:00
Adam Harrison
64f66e5d1e
Added in cut, copy and paste to the context menu. Also removed find pattern, as that's no longer a valid command. Also made it so commands only show up if their predicates are valid.
2021-11-23 21:03:38 -05:00
Adam Harrison
cc3fddd1e5
Added in check to make sure you can use a scrollbar on a split.
2021-11-23 20:34:01 -05:00
Guldoman
cd2adb4a30
Apply again 1976facaf1
...
Use reverse search for `find-replace:previous-find`
2021-11-23 22:22:52 +01:00
Adam Harrison
96db380c73
Manual merge of into .
2021-11-23 15:57:22 -05:00
Adam
43a6e21135
Merge pull request #681 from Guldoman/prepopulate_highlighter
...
Prepopulate highlighter
2021-11-23 15:38:20 -05:00
Guldoman
23a0f6ca79
Speed up highlighter notify
...
Avoid calling `table.{insert,remove}` multiple times, as this causes
multiple shifts in the `self.lines` table.
2021-11-22 06:23:16 +01:00
Guldoman
3d9901695b
Use the new `Doc:get_indent_info` throughout `core`
2021-11-20 04:37:15 +01:00
Guldoman
b77b1c0221
Add `Doc:get_indent_info`
...
It returns the indentation type, size and confirmation status, used by
the `Doc`.
2021-11-20 04:36:58 +01:00
Guldoman
d0a2c913f5
Pre-populate the highlighter
...
This avoids problems with calls to `[insert,remove]_notify` on lines
that the highlighter has not yet added.
2021-11-20 01:18:37 +01:00
Guldoman
f24aa64cd5
Add `soft_reset` to highlighter
...
This allows clearing the `lines` table without removing entries.
2021-11-20 01:15:13 +01:00
Joshua Minor
4f55555ca9
Selection expands by word or line on double or triple click followed by drag.
2021-11-19 09:46:13 -08:00
Takase
8e6f594790
Merge branch 'master' into replace-unpack
2021-11-17 08:42:08 +08:00
takase1121
6d36f2684a
add polyfill for table.pack and table.unpack
2021-11-17 08:37:37 +08:00
Adam Harrison
18959aebef
Fixed predicate and minor propogation issue.
2021-11-16 19:12:39 -05:00
Adam
c58029df8b
Merge pull request #589 from adamharrison/clicks-keymap
...
Added in clicks to keymap.
2021-11-16 15:49:52 -05:00
Takase
285ea4f495
Merge branch 'master' into keymap-improvements
2021-11-15 21:59:04 +08:00
Adam
ca448c5fdb
Merge pull request #664 from Guldoman/highlight_caret_line
...
Highlight any line that contains a caret
2021-11-14 16:27:25 -05:00
Adam Harrison
2463c5d209
Made keymap more flexible.
2021-11-14 15:51:27 -05:00
Adam Harrison
acc6667f57
Bug.
2021-11-14 15:45:46 -05:00
Adam Harrison
d8473a3e00
Changed click prefixes to be numbers, as Takase suggested.
2021-11-14 15:44:54 -05:00
Adam Harrison
2931bdeb68
Can't forget mac.
2021-11-14 15:41:28 -05:00
Adam Harrison
50c0659445
Also changed docview mousewheel into a scroll command.
2021-11-14 15:41:28 -05:00
Adam Harrison
7babed1e6b
Added in more broad strokes for clicking to match wheel. 's' is single, 'd' is double, 't' is triple, and no prefix will always take any amount of clicks.
2021-11-14 15:41:28 -05:00
Adam Harrison
7a3e8ed86a
Added in mousewheel as part of this.
2021-11-14 15:41:28 -05:00
Adam Harrison
c04dc648de
Refactored things out.
2021-11-14 15:41:28 -05:00
Adam Harrison
1968d31b7c
Keymap.
2021-11-14 15:41:28 -05:00
Adam Harrison
6bdcfc824d
Rearranged things to make a bit more sense.
2021-11-14 15:41:28 -05:00
Adam Harrison
7905ddd26f
Fixed propogation again.
2021-11-14 15:41:28 -05:00
Adam Harrison
4e313d9fc5
Propogated mouse clicks correctly.
2021-11-14 15:41:28 -05:00
Adam Harrison
ce2ec9f442
Moved commands out to the outer event loop.
2021-11-14 15:41:28 -05:00
Adam Harrison
6f53ee1b69
Added in double, and triple clicking.
2021-11-14 15:41:28 -05:00
Adam Harrison
4a0d390a7c
Added in macos keys.
2021-11-14 15:41:28 -05:00
Adam Harrison
612818ca05
Added in clicks to keymap.
2021-11-14 15:41:28 -05:00
Adam Harrison
1376eaf54d
Made varaible anonymous.
2021-11-14 15:40:23 -05:00
Guldoman
6bc4fbb238
Restore `TitleView` only when needed
...
Before, every time the user came back from fullscreen, the `TitleView`
was shown regardless of its previous status.
2021-11-09 22:21:45 +01:00
Guldoman
b3eef15e7a
Highlight any line that contains a caret
...
Now lines with selections can be highlighted if they contain a caret.
2021-11-09 21:33:47 +01:00
Adam Harrison
5b8c08e93a
Missing parentheses.
2021-11-07 17:57:15 -05:00
Adam Harrison
24669293c7
Made it so that we originally start on the parent directory of the current project, but provide a list of recently used projects if on that directory. If a directory separator is added, then everything is as normal.
2021-11-07 17:54:42 -05:00
Adam
40f698e4bf
Merge pull request #625 from Guldoman/allow_closing_primary
...
Select a new primary node when closing the current one
2021-11-07 15:10:19 -05:00
Adam
b7042fd9f7
Merge pull request #631 from Guldoman/fix_missing_subsyntax
...
Use `header` to get syntax only when provided
2021-11-07 15:09:50 -05:00
Adam Harrison
05dcddaeec
Made plugin load order deterministic.
2021-11-07 13:14:48 -05:00
Adam
286183f917
Merge pull request #634 from Guldoman/fix_highlighter_holes
...
Don't insert `nil` in highlighter lines table
2021-11-04 20:45:03 -04:00
Guldoman
9e721937af
Don't insert `nil` in highlighter lines table
...
When `highlighter:insert_notify` was called, a hole in the array was
created.
If another call to `highlighter:insert_notify` happened before the hole
was filled, a `Position out of bounds` error could have been raised.
2021-10-26 00:12:16 +02:00
Guldoman
df665ddc38
Use `header` to get syntax only when provided
2021-10-25 14:06:07 +02:00
Guldoman
92db048e7c
Use plain search by default in `search.find`
2021-10-25 00:18:20 +02:00
Francesco Abbate
5cdd800910
Fix problem checking utf-8 cont at end of string
2021-10-23 15:03:09 +02:00
Guldoman
331b8e90ec
Select a new primary node when closing the current one
...
The new primary node can be any non-locked leaf node that isn't already
primary.
2021-10-23 03:34:24 +02:00
Francesco
6f732f67f9
Merge pull request #612 from Guldoman/fix_regex
...
Fix regex in tokenizer
2021-10-22 21:44:44 +02:00
Francesco Abbate
ddb6196e9e
Force project rescan on network filesystems
2021-10-21 23:57:17 +02:00
Francesco Abbate
e9c16c4367
Add a limit for very slow filesystems
...
When adding a directory in a project we check if the filesystem is too
slow. If it is too slow we act as if the projects was files-limited by
the number of files but we show a specific warning.
This solution is not perfect but for very low filesystem it can limit
the problem. Otherwise the application would be totally irresponsive.
2021-10-21 23:18:31 +02:00
Francesco Abbate
167e41de65
Fix problem with treeview keeping the editor busy
...
Fix a problem introduced when fixing the dirty pixel problem, commit
cb08c5c
. The node, when determining the layout was rounding the size
of the fixed-size view. In turns this latter was calling move_towards
to the default_size it wanted. If default_size was non-integer the
value vas never archieved because it was rounded during layout and
move_towars was keeping the editor busy by setting the
core.need_redraw flag.
2021-10-21 23:18:31 +02:00
Francesco Abbate
f18ac849fb
Fix error introduced with 43fc35d7
2021-10-21 23:18:31 +02:00
Francesco Abbate
9c52c420c5
Do not use normalize_path when not needed
2021-10-21 23:18:31 +02:00
Francesco Abbate
f472c24c73
First attempt to treat correctly network volumes
...
On windows paths belonging to network volumes will be gives like:
\\address\share-name\path
Now the code recognize these paths and treat them correctly.
2021-10-21 23:18:31 +02:00
Guldoman
780c8c6d0d
Improve check for `find-replace` commands using `has_unique_selection`
2021-10-16 03:02:42 +02:00
Guldoman
ef60b24f63
Check both values returned by `Node:get_locked_size`
2021-10-16 02:56:01 +02:00
Adam Harrison
f2488fdd8d
Added in support for font groupings.
2021-10-12 23:24:52 -04:00
Guldoman
8a516d35ce
Correctly identify the start of the next character in `tokenizer`
...
When moving to the next character, we have to consider that the current
one might be multi-byte.
2021-10-11 22:37:31 +02:00
Guldoman
1872e82141
Make `regex.match` return the appropriate `end` index
...
This makes its behavior similar to `string.find`.
2021-10-11 22:32:50 +02:00
Guldoman
3a71528087
Allow specifying offset for `common.is_utf8_cont`
2021-10-11 22:18:02 +02:00
Francesco Abbate
0d2166c9ce
Correct Node's clipping rectangle
...
Fixing the Node's clipping rectangle make the clipping in DocView:draw()
partially redundant. This latter is now no longer needed to clip
on the right when drawing the document's lines but it still serves to
the purpose of clipping on the left, before the gutter region.
2021-10-11 09:25:38 +02:00
Francesco Abbate
8b634daa66
Use rounded value for node's size when splitting
...
Rouding node's size to an integer value ensure drawing are pixel
perfect in sizing.
2021-10-10 21:48:16 +02:00
Francesco Abbate
c7aa3ebe01
Fix clipping error in docview
2021-10-10 21:44:16 +02:00
Francesco Abbate
cb08c5cbb7
Fix dirty pixels problem on window's right side
...
The last column of pixel on the window's right side isn't correctly
drawn and pixels appear dirty and more noticeably when the a NagView
message was previously shown, a stripe of red pixels remains on the right.
We use now a more souding roundig scheme. Now the rectangles to clip or to
draw are passed around as Lua numbers without any rounding. In turns, when
the rect coordinates are passed to the renderer we ensure the border of the
rect are correctly snapped to the pixel's grid. It works by computing the
coordinates of the edges, round them to integers and then compute the rect's
width based on the rounded coordinates values.
2021-10-10 14:52:55 +02:00
Francesco
228d6ff101
Merge pull request #466 from Guldoman/new_not_dirty
...
Avoid setting a new file as dirty if it is empty
2021-10-10 10:05:19 +02:00
Guldoman
3a1274fd08
Merge reverse find functions for lua patterns and regexes
2021-10-10 01:11:41 +02:00
Guldoman
cfe0c79a04
Simplify reverse search
...
Remove `plain_rfind` optimization.
2021-10-10 01:11:40 +02:00
Guldoman
af925d603b
Fix `doc` selection in `findreplace`
...
Use `last_view` if `active_view` is `CommandView`.
2021-10-10 01:11:40 +02:00
Guldoman
1976facaf1
Use reverse search for `find-replace:previous-find`
2021-10-10 01:11:38 +02:00
Guldoman
e7be9652c9
Add `find-replace:select-previous`
2021-10-10 01:10:52 +02:00
Guldoman
56eace627a
Add reverse option to `search.find`
2021-10-10 01:10:47 +02:00
Francesco Abbate
7dd5699c96
Use dmon events in reload plugin
2021-10-08 23:15:25 +02:00
Francesco Abbate
911a3cee08
Report dmon modify events
2021-10-08 23:13:50 +02:00
Francesco Abbate
9c43727ebc
Implement directory monitoring using septag/dmon
...
Use a notification based directory monitoring based on the
septag/dmon lirbary instead of periodically rescan the whole
project's tree.
2021-10-08 21:31:22 +02:00
Francesco Abbate
92362586df
Improve highlither for document edits
...
The syntax highlighter keep a cache of the documents like tokenization.
In order to minimize the amount of tokenize re-computations we insert some
emtty lines or remove some lines in the highlither lines corresponding to
the lines added or removed to the document.
2021-10-08 21:28:27 +02:00
Francesco Abbate
7a435a568a
Fix error in incremental syntax highlighter
...
In the highlither thread We should accept a previously generated line tokenization
past first_invalid_line only if the text is the same. The text can change because of
insert or remove operations.
Close #573 .
2021-10-08 21:27:57 +02:00
Francesco Abbate
44d7f3738f
Improve highlither for document edits
...
The syntax highlighter keep a cache of the documents like tokenization.
In order to minimize the amount of tokenize re-computations we insert some
emtty lines or remove some lines in the highlither lines corresponding to
the lines added or removed to the document.
2021-10-07 19:19:08 +02:00
Francesco Abbate
8477818c96
Fix error in incremental syntax highlighter
...
In the highlither thread We should accept a previously generated line tokenization
past first_invalid_line only if the text is the same. The text can change because of
insert or remove operations.
Close #573 .
2021-10-07 19:03:16 +02:00
Guldoman
db3643653e
Sanitize selections after redo
2021-10-02 22:03:52 +02:00
Francesco
eb79381c89
Merge pull request #521 from adamharrison/remove-font-renderer
...
Remove Font Renderer + CP Replace + libagg
2021-10-02 18:45:31 +02:00
Francesco Abbate
72c950338c
Enable always show tabs by default
2021-10-02 18:44:05 +02:00
Guldoman
20ddbd6e9f
Load project module on project change ( #571 )
2021-10-02 18:39:23 +02:00
Guldoman
57bfb67f6a
Add option to disable caret blinking ( #572 )
2021-10-02 18:39:23 +02:00
Guldoman
f6b9d9ab67
Add option to disable scrolling past the end ( #566 )
2021-10-02 18:39:22 +02:00
Rongfei Wang
b0b3485152
Remove duplicate command declaration ( #565 )
2021-10-02 18:39:22 +02:00
Adam Harrison
291616df3f
Removed extra macros, used PLATFORM. Also removed MACOS, as it's redundant C code that's already encapsulated within PLATFORM.
2021-10-02 18:39:03 +02:00
Guldoman
d817944170
Force showing tabs when dragging them
2021-10-02 18:37:00 +02:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Francesco Abbate
a02691f18e
Merge topic branch for tabs scrolling buttons
2021-05-19 22:59:29 +02:00
Adam
b278306fc9
Changed deindent, so that if the deindent runs into an unusual line with a partial indent at the front, it'll still de-indent that. ( #193 )
2021-05-19 22:41:28 +02:00
liquidev
86a7037ed9
support for multiple groups in one pattern ( #196 )
2021-05-19 22:35:28 +02:00
Francesco Abbate
a92d15fe30
Use all the available space for tabs
...
Use a tab's width larger than style.tab_width if there is enough
available space to display the number of tabs specified in
config.max_tabs.
2021-05-19 10:09:40 +02:00
lqdev
ba4fbde33d
fixed mixed indentation
2021-05-18 17:52:18 +02:00
Francesco Abbate
1fb01f36df
Avoid overflowing tab rectangles when animating
2021-05-17 15:11:06 +02:00
Francesco Abbate
13529c28d4
Cosmetic variable name change
2021-05-17 13:37:05 +02:00
Francesco Abbate
ba40bc0dfc
Final adjustments to tab's rect computations
2021-05-17 12:14:01 +02:00
Adam
e43f1b9df9
Unified open and saving style. ( #189 )
2021-05-17 09:29:51 +02:00
Adam
c7b1a6f53e
Allowed for optional boolean to better match filenames. ( #180 )
2021-05-16 19:23:17 +02:00
Francesco Abbate
b37c190db2
Add buttons to scroll tabs when there are too many
...
Use config.max_tabs to configure the maximum number of tabs that can
be shown. Beyond the maximum value scroll buttons will appear to scroll
the tabs.
2021-05-16 15:50:27 +02:00
Francesco Abbate
90e41daa99
Add tab animation and improve hovering update
...
Always update the tab hovering status using the Node:update
method. Previous behavior was to update only on mouse moved
events.
2021-05-15 16:57:20 +02:00
Francesco Abbate
b223dbca6f
Use unicode ellipsis to truncate tab's text
...
For proportional fonts is equivalent to three dots but it makes a
lot of difference for monospaced fonts.
2021-05-15 16:27:29 +02:00
Francesco Abbate
f30dfc20fe
More accurate tab width calculation
...
Ensure the right side of the right-most tab always end up at the
same position.
2021-05-15 16:26:15 +02:00
Francesco Abbate
50a4fc212f
Do not truncate filenames in tab and use dots
2021-05-15 14:49:16 +02:00
Francesco Abbate
e2fcc41b4a
Ensure tabs don't extend beyond window's width
2021-05-15 14:17:36 +02:00
Francesco Abbate
e58d7600ee
Prepare release 1.16.9
2021-05-06 17:08:56 +02:00
tsukanov-as
f637dc4db8
Fix creating a new file ( #179 )
2021-05-06 16:53:46 +02:00
Francesco Abbate
55a6888818
Fix resizing problem for nested nodes
...
Should fix problem reported in:
https://github.com/drmargarido/TodoTreeView/issues/3
2021-05-06 15:35:40 +02:00
Francesco Abbate
5cef643e02
Introduce new plugin versioning tag mod-version
...
New plugins should use the version tag:
-- mod-version: 1
The old version tag "-- lite-xl 1.16" will be considerer equivalent
to mod-version 1.
2021-05-05 22:38:29 +02:00
Adam
135dfa6f03
Add a more explicit message in log and config.max_project_files
...
* Added a line to avoid people going down the rabbit hole that I did.
* Further explanatory text.
2021-05-05 16:00:17 +02:00
Francesco Abbate
9f7f55926b
Use home_encode when setting window title to filename
2021-05-05 10:35:19 +02:00
Francesco Abbate
d63afe02ed
Use string.find only in common.home_encode
...
Should be slightly more efficient.
2021-05-05 10:34:48 +02:00
Francesco Abbate
820d520fc3
Store doc's babs_filename without home encoding
...
This is the way was supposed to be. All the filenames are supposed to be
stored without home encoding, i.e. with explicit paths.
Should fix issue #177 and make PR
https://github.com/franko/lite-xl/pull/174
unneeded.
It may also address issue #174 but would need further verifications.
2021-05-05 08:52:14 +02:00
Adam
4c42dd4adc
Do not close command view on open-file is file is invalid or it is a directory
...
Added in a validation function which fires before submitting a command enter; found it incredibly irritating to try to open something, hit enter, only to be told I'd selected a directory, and then have to go through the whole process again. (#175 )
2021-05-05 08:04:51 +02:00
Adam
67ec7e8065
Added in drag and drop capability. ( #170 )
2021-05-02 09:13:21 +02:00
Francesco Abbate
b42d9de0be
Prepare 1.16.7 release
2021-05-01 23:18:16 +02:00
Adam
e4da235f7e
Made it so that you can continue clicking and still select things. ( #166 )
2021-05-01 22:32:50 +02:00
Adam
dd604c1336
Nil check, to avoid issues for files that don't have filenames yet (new files, etc..) ( #169 )
2021-05-01 22:25:39 +02:00
Francesco Abbate
1a05e00fdd
Fix detection of user file module
...
Close #54
2021-05-01 19:27:29 +02:00
Francesco Abbate
e6d88909a8
Fix log message about project dir
2021-05-01 19:27:29 +02:00
Francesco Abbate
5766329313
Fix filename problem
...
Close #163
2021-05-01 19:27:29 +02:00
Francesco Abbate
857807b23a
Use ab filename as initial text for open file command
2021-05-01 19:27:29 +02:00
adamharrison
3fe6665b9a
Nested Syntax Highlighting ( #160 )
2021-05-01 11:45:30 +02:00
adamharrison
2e7817f609
Use the active view's filename when opening a file
2021-04-25 20:58:56 +02:00
lqdev
c859498d68
check version in init.lua within directory plugins
2021-04-25 19:14:36 +02:00
lqdev
34e94bb8aa
fixed versioning, again
2021-04-25 12:35:00 +02:00
lqdev
5e8e2f54b5
directories should not be loaded
2021-04-25 11:45:08 +02:00
Francesco Abbate
dd9b4f06ab
Fix keymap binding on macos
2021-04-21 01:42:56 -07:00
Francesco Abbate
9d9c7f291c
Make control to cmd translate on macos automatic
2021-04-21 10:16:51 +02:00
Francesco Abbate
80192573da
Add macos keybindings
...
Thanks to @mathewmariani, modifications taken from his lite-macos repository
2021-04-21 09:48:30 +02:00
Francesco Abbate
f50728bf18
New version tag
2021-04-21 09:05:51 +02:00
Francesco Abbate
2c8e723c6d
Disable borderless window by default
2021-04-21 09:05:15 +02:00
Francesco Abbate
8bcace1d59
Merge remote-tracking branch 'origin/border-less-window'
2021-04-21 08:42:57 +02:00
Francesco Abbate
53f77a29ea
Implement correctly loading from macos bundle resources
2021-04-18 08:51:31 -07:00
Francesco Abbate
032018ec48
More aggressive wait_event timeout when window has focus
...
Adopt a time based logic for cursor blinking and wait for event
when idle with a timeout equal to blink remaining time.
2021-04-17 14:57:28 -07:00
Francesco Abbate
f7375924ab
Make non-borderless mode work
2021-04-12 19:05:30 +02:00
Francesco Abbate
4de97d51fb
Avoid always calling system.get_window_mode
2021-04-12 13:31:32 +02:00
Francesco Abbate
46791aefe5
Implement maximize/restore controls
...
Remove also resize from top and right of the window
2021-04-12 11:54:52 +02:00
Francesco Abbate
67dc16ad26
Make windows control buttons active
2021-04-11 23:52:31 +02:00
Francesco Abbate
8ad87d77da
Add correct hit-test information and menu icon
2021-04-11 15:08:25 +02:00
Francesco Abbate
7531a0ddc8
Preliminary implementation of border-less mode
...
Not yet functional but most ingredients are there
2021-04-10 19:35:57 +02:00
Francesco Abbate
f250adcda1
Implement multi-lines for NagView
...
Related to issue #147
2021-04-07 23:46:45 +02:00
Francesco Abbate
119f406d3c
Add NagView message for refused plugins
2021-04-07 09:42:19 +02:00
Francesco Abbate
d7cc1f9f9d
Add plugin verification by version tag
2021-04-06 17:50:46 +02:00
Francesco Abbate
3721ace099
Fix logical error in on_text_change
2021-04-06 08:26:53 +02:00
Francesco Abbate
e43c980e4a
Simplifies previous commit
...
Restore the previous signature of raw_insert/remove
2021-04-06 08:18:35 +02:00
Francesco Abbate
d1984942ea
Add hook function for Doc changes
2021-04-05 00:11:56 +02:00
Takase
63b9cf223e
NagView improvements ( #136 )
...
Implement keyboard commands for the NagView.
2021-04-04 16:11:47 +02:00
Francesco Abbate
3b040aabc7
Implement unicode character replacements
...
Useful to draw whitespaces with alternate characters and colors
without slowing down the text rendering.
A new API is implemented. A renderer.replacements object can be created
to list the replacements.
In turns the function renderer.draw_text and draw_text_subpixel now accept
two optional arguments for replacements.
2021-04-01 18:05:59 +02:00
Francesco Abbate
15a4985065
Prepare release 1.16.5
2021-03-20 22:31:45 +01:00
Francesco Abbate
60fa7d07ba
Prepare 1.16.4 release
2021-03-20 17:10:27 +01:00
Francesco Abbate
f9115751b4
Minor simplification of animation rate adjustment
2021-03-20 17:00:43 +01:00
Francesco Abbate
7f50df6a2f
Ensure plugin within a directory are loaded
...
Close #118
2021-03-20 16:34:00 +01:00
Francesco Abbate
26ec9e5820
Compute animation rate only if needed
2021-03-18 16:20:21 +01:00
Francesco Abbate
04063ff47e
Fix error introduced with commit c0ad86d
2021-03-18 15:46:44 +01:00
Francesco Abbate
88bec172a1
Fix problem with tab size and subpixel positioning
...
Solve github issue https://github.com/franko/lite-xl/issues/109
2021-03-18 13:54:33 +01:00
Takase
c0ad86de8c
integrate NagView
2021-03-13 12:57:52 +01:00
liquidev
844ecd1f26
Make animation speed independent of config.fps, add config.animation_rate to fine-tune animation speed ( #93 )
...
* animation rate config field
* @franko's math magic to make it look more correct
2021-03-10 16:35:37 +01:00
liquidev
3af6af654b
more stylish tabs ( #95 )
2021-03-09 14:24:14 +01:00
Francesco Abbate
b612357371
Bump new version number
2021-03-07 18:47:15 +01:00
Francesco Abbate
baf5aebe1c
Merge remote-tracking branch 'origin/master' into subpixel-font-positioning-fix
2021-03-07 12:25:53 +01:00
Francesco Abbate
23a053e1ee
Ensure error and stack trace are written to stdout
...
To address https://github.com/franko/lite-xl/issues/87
2021-03-07 09:48:44 +01:00
Francesco Abbate
199476547b
Fix error related to panes resize along y
2021-03-06 23:50:19 +01:00
Francesco Abbate
991db14877
Ensure filename are store relative to project directory
2021-03-06 23:49:20 +01:00
Francesco Abbate
5bf7abf23d
Ensure filename are store relative to project directory
2021-03-06 23:36:05 +01:00
Francesco Abbate
087c8ba402
Fix error related to panes resize along y
2021-03-06 23:05:04 +01:00
Francesco Abbate
3426bc5d73
Introduce subpixel text positioning within rencache
...
In order to fix the issue with cursor positioning a subpixel-aware draw
text operation within rencache was required.
With this modification the cursor positioning problem is completely
resolved.
A new function renderer.draw_text_subpixel is introduced to perform
consecutive, inline, text drawings with subpixel accuracy.
2021-03-06 18:12:02 +01:00
Francesco Abbate
9ff6a0325e
Mostly fix problem of offset with cursor positioning when using mouse
...
In order to get right the cursor position on text on mouse clicks it is
needed to take into account text's subpixel positioning.
This fix mostly corrects the problem but cursor positioning is still
somewhat inaccurate for long lines due to repeated commands to draw a text
along a line. Repeated draw text calls make the subpixel information
lost and small errors will add-up.
2021-03-06 16:18:24 +01:00
daubaris
0cb594aaf2
Enable customizing cursor speed ( #80 )
...
Addresses issue #65
2021-03-06 11:03:12 +01:00