Commit Graph

532 Commits

Author SHA1 Message Date
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
Jefferson González 476404c21a
Added ability to register on_doc_close hooks. (#220) 2021-05-26 07:50:04 +02:00
Francesco Abbate 63a613fe17 Merge branch master into dev 2021-05-26 07:39:53 +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 fbbe6d5dfb Merge branch master into dev 2021-05-22 15:12:05 +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
liquidev 78999cabe2
Improved Lua syntax (#201)
* improved Lua syntax

* added some missing cases with number literals
2021-05-20 19:02:40 +02:00
Francesco Abbate 84095fadc9 Merge branch master into dev 2021-05-20 13:51:35 +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
Francesco Abbate 838bbf8285 Merge branch PCRE (adamharrison) into dev 2021-05-17 10:54:57 +02:00
Francesco Abbate 92322986b8 Fix error with previous commit
Error was introduced with PR:

https://github.com/franko/lite-xl/pull/190
2021-05-17 10:16:55 +02:00
Adam 6e08c3321c
Fixed a bug where if detectindent is paired with another plugin that hooks the event, it'll overwrite the other plugin's functions. (#190) 2021-05-17 10:05:08 +02:00
Adam e43f1b9df9
Unified open and saving style. (#189) 2021-05-17 09:29:51 +02:00
Adam 85d0d684de
Truncated lines longer than 256 characters, and skipped to the relevant portion of the line to reduce slowdown and increase relevancy. (#185) 2021-05-17 09:16:20 +02:00
Adam e54ffc49ea
Added in keyboard shortcuts to the project search module. (#188) 2021-05-17 09:14:46 +02:00
Cukmekerb bd4efa14a2
add `of` keyword to language_js.lua and improve js string syntax highlighting in (#186) 2021-05-17 08:56:21 +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
Jan 7d29052367
Update C Language file (#182)
retype struct symbol, add some preprocessor keywords
2021-05-14 19:05:58 +02:00
Francesco Abbate ea3a7e81be Fix problem with previous commit
Desastrous problem where core.normalize_path was removing the leading /.
2021-05-10 17:01:14 +02:00
Francesco Abbate 708c2983ef Create new document if file doesn't exist
If a non-existing file is specified with the command "core:open-file"
a new document is opened with the given filename provided the directory
already exists.

The flag new_file is set to true in the Doc instance.

The file will be actually created only when the "save" command is used.

The document will be marked with the "*" event when no changes are done
to mean that it is a new file and is not yet saved.

The function common.normalize_path now process the .. and . in the
filename. Before was not needed because system.absolute_path already
get rid of them but now we need to have the absolute path of files
that not yet exists so we cannot use system.absolute_path.
2021-05-10 16:44:27 +02:00
Francesco Abbate 0ce5680ef2 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-05-10 13:08:39 +02:00
Francesco Abbate ba48cb1382 Fix problem in regex.gsub
The local n was not initialized and the "string" argument was shadowing the Lua's "string" module.
2021-05-07 10:44:38 +02:00
Francesco Abbate 1c6325b40f Merge branch 'master' into 'dev' 2021-05-07 08:25:35 +02:00
Adam Harrison a100a7b6a9 Fixed offsets, and passed through an additional parameter. 2021-05-06 19:53:03 -04:00
Adam Harrison 88c5424e0b Removed unecessary plugin. 2021-05-06 19:53:03 -04:00
Adam Harrison c0c6bc5be9 Replaced pattern-based commands with regexes. 2021-05-06 19:53:03 -04:00
Adam Harrison bf09582478 Fixed lines to conform to style guidelines. 2021-05-06 19:53:03 -04:00
Adam Harrison a66e1f1559 Added in keyboard shortcut. 2021-05-06 19:53:03 -04:00
Adam Harrison 272067124d Updated PCRE to use utf8, and created sample plugin. 2021-05-06 19:53:03 -04:00
Adam Harrison a9dd790321 Reworked files to conform to style guidelines. 2021-05-06 19:53:03 -04:00
Adam Harrison 0c9e517791 Initial commit of PCRE engine. 2021-05-06 19:53:03 -04: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
liquidev b76905e78a
Support for changing fonts per syntax group (#178) 2021-05-05 23:08:10 +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
Adam Harrison b69242312d Changed HTML plugin to have case insensitive matching of script and style tags. 2021-05-01 14:52:39 -04: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 a1b3266d42 Improve language CSS color literal pattern
Close #123
2021-04-12 11:21:00 +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 6e3cd41bd1 Logical test simplification in detectindent 2021-04-06 08:27:35 +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
takase1121 5e8444b2b1 rename tooltip_alpha_step to tooltip_alpha_rate 2021-03-20 01:04:07 +00:00
takase1121 93753634f5 set delay to 0.5 and disable animation 2021-03-20 01:03:16 +00:00
takase1121 cdf5b9b9b8 show tooltips only when hovering over text 2021-03-20 00:57:06 +00:00
takase1121 d191e8ee34 prevent rendering tooltip when alpha is 0 2021-03-20 00:28:49 +00:00
Francesco Abbate 26ec9e5820 Compute animation rate only if needed 2021-03-18 16:20:21 +01:00
Takase 0bb7f21dd7
tooltip enhancements (#114)
Add a delay to show the tooltip and other improvements.
2021-03-18 16:18:36 +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
takase1121 1f97805321 normalize tooltip filename to home dir 2021-03-14 03:09:18 +00:00
Takase 13ebb51c38
add tooltips to treeview.lua (#100) 2021-03-13 16:44:40 +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
Francesco Abbate aa1408c01f Do not assume doc.indent_info is present 2021-03-05 23:47:36 +01:00
Francesco Abbate 09332fe242 Fix problem with fatal error message
Previous implementation was broken.

Ensure the error file is always written and write its location in the error message
2021-03-05 23:46:41 +01:00
Francesco Abbate 877e4ac6e2 Bump new version 2021-03-05 11:33:29 +01:00
Francesco Abbate a4bc8986ff Implement fatal error message box
Used when lite-xl fails at startup
2021-03-05 10:33:50 +01:00
Francesco Abbate 3506ff47fc Fix problem with plugin loading
Introduced with PR https://github.com/franko/lite-xl/pull/73
2021-03-05 07:22:56 +01:00
Francesco Abbate de13762085 Show complete tab name when close butto is not there 2021-03-03 18:48:41 +01:00
liquidev 2e1a6ad5d1
Fix #30 – user plugins take priority over built-in plugins (#73)
user plugins should take priority over stock plugins
2021-03-03 12:20:22 +01:00
Francesco Abbate 8883685eea Fix font size in initial user's config 2021-03-01 09:48:12 +01:00
Francesco Abbate c0942bbde7 Use slightly larget font for UI 2021-02-28 23:44:35 +01:00
Francesco Abbate 75eadf4dc7 Simplifies logic for suggestion's offset 2021-02-28 23:24:19 +01:00
Francesco Abbate e46800347f Implement scrolling in command view 2021-02-28 19:52:38 +01:00
Francesco Abbate a35ef764a0 Show Lite XL instead of lite in window's title 2021-02-28 18:55:05 +01:00
Francesco Abbate 6c84913f6a Do not set window's title to unsaved for command view 2021-02-28 18:54:32 +01:00
Francesco Abbate bd2d8db231 Draw divider for inactive tabs 2021-02-27 23:56:11 +01:00
Francesco Abbate f708a53a04 Keep active view when closing inactive tabs 2021-02-27 23:55:36 +01:00
Francesco Abbate 4d320c1946 Ensure treeview is large enough to show toolbar 2021-02-27 19:39:56 +01:00
Francesco Abbate e861ea1d66 Ensure tab's text and close button don't overlaps 2021-02-27 17:19:47 +01:00