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
redtide
818a7abb0a
Avoid to restore window size when maximized ( #226 )
2021-05-28 08:51:39 +02:00
Francesco Abbate
ad7d17caca
Use FiraSans regular for UI
2021-05-27 13:49:33 +02:00
Janis-Leuenberger
1394c53dbc
Improve user feedback for big directories ( #223 )
2021-05-27 08:28:58 +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
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
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
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
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
8bcace1d59
Merge remote-tracking branch 'origin/border-less-window'
2021-04-21 08:42:57 +02: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
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
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
7f50df6a2f
Ensure plugin within a directory are loaded
...
Close #118
2021-03-20 16:34:00 +01:00
Takase
c0ad86de8c
integrate NagView
2021-03-13 12:57:52 +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
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
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
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
a35ef764a0
Show Lite XL instead of lite in window's title
2021-02-28 18:55:05 +01:00
Francesco Abbate
0dc18de6bc
Add information about icon_big_font in initial user's configuration
2021-02-27 12:13:51 +01:00
Francesco Abbate
4f2e38d41f
Make code and ui font smaller at 12
2021-02-19 16:23:19 +01:00
Francesco Abbate
688dc1a7b8
Do not log every plugin load
...
Since we now load the user's module before the plugins\nwe avoid to log a line for each loaded plugin to not hide\nan eventual error in the user module
2021-02-19 16:12:56 +01:00
Francesco Abbate
68d9794926
Adjust default code font size
...
The previous value looks too big in hidpi screens
2021-02-19 16:10:57 +01:00
Francesco Abbate
76b463bd11
Create empty fonts directory in USERDIR
2021-02-19 16:10:02 +01:00
Francesco Abbate
6353fde609
Move user module loading before plugins
...
Otherwise the configuration to disable a plugin does not take effect.
2021-02-19 10:08:03 +01:00
Francesco Abbate
114f6b2481
Do not print error on standard output
...
Delayed error when passing invalid directory argument.
2021-02-19 09:29:46 +01:00
Francesco Abbate
ba68d6db24
Improve error handling for directory arguments
2021-02-19 00:15:55 +01:00
Francesco Abbate
a2c4fdf649
Normalize global PATH from core.init
2021-02-18 09:02:57 +01:00
Francesco Abbate
de1afb3391
Add full filename path in window's title
...
Optimal implementation to limite computations in core.step.
2021-02-18 00:26:19 +01:00
Francesco Abbate
59fbf9cfc0
Merge branch 'master' into dev
2021-02-17 23:57:02 +01:00
Francesco Abbate
9b27180267
Use doc on_save hooks to reload user module
2021-02-17 20:10:39 +01:00
bud
3693556958
FIX: get DocView in init instead of step, remove option for window title format'
2021-02-16 19:12:56 +01:00
bud
dd30725d84
FIX: before setting full path to window title, make sure activeView is DocView
2021-02-15 22:38:29 +01:00
bud
436446dd9a
ADD: in core.step() show full path if view is a document and config.full_path_in_window_title is true
2021-02-15 21:05:06 +01:00
Francesco Abbate
b836c2e1e6
Implement proper layout of toolbar
2021-02-15 00:36:39 +01:00
Francesco Abbate
2765cbd92b
Show a dummy toolbar
...
Does not do anything for the moment
2021-02-12 15:54:11 +01:00
Francesco Abbate
f482ea318a
Makes resizable attribute explicit in Node:split()
2021-02-11 16:12:21 +01:00
Francesco Abbate
a8c810d801
Merge remote-tracking branch 'origin/master' into dev
2021-02-09 18:39:39 +01:00
Francesco Abbate
3d8cf22933
Fix error with previous commit
2021-02-05 15:36:48 +01:00
Francesco Abbate
03818d13fd
Fix error when using relative dir argument
2021-02-03 07:39:35 +01:00
B14CK313
65c7f666aa
Fixed path returned by temp_filename not writeable
...
The path returned by temp_filename was not writeable on UNIX (and possibly other OS). This lead to the gitstatus plugin not working.
The proposed change fixes this by using the USERDIR variable instead of EXEDIR
2021-01-22 02:10:24 +01:00
Francesco Abbate
ef5e431a8b
New feature to disable plugins from config
...
Disable trimwhitespace by default
2021-01-13 14:50:24 +01:00
Francesco Abbate
fcf763fe9c
Fix problem when project directory has a trailing slash
2021-01-10 12:56:15 +01:00
Francesco Abbate
7f9e4e4984
Do not error out when project directory is invalid
2021-01-10 11:50:15 +01:00
Francesco Abbate
e548a6adb9
Fix directories management to always keep the project's directory
2021-01-03 12:02:07 +01:00
Francesco Abbate
850fcbf710
Add required normalize_path call
2020-12-31 12:32:41 +01:00
Francesco Abbate
2cdf674b97
Keep memory of window's size and position and restore them on start
...
Fix also a problem with directory path on windows.
2020-12-31 11:25:12 +01:00
Francesco Abbate
c3f5d2c144
Fix problems with project files and project directories
...
Now treat coherently the case when the project directory is removed from
the project directories.
2020-12-30 14:53:50 +01:00
Francesco Abbate
b91a84eb56
Fix project change and quit versus workspace plugin
2020-12-30 14:31:36 +01:00
Francesco Abbate
0e263af3c6
Create common.serialize function
2020-12-30 13:32:25 +01:00
Francesco Abbate
ddd56ec615
Add command to remove a directory from the project
...
In addition directories can be removed with a mouse middle-click in the
tree view pane.
2020-12-28 15:51:16 +01:00
Francesco Abbate
c042bfc907
Change project files output to not include a prefix '/' in filename
...
It make sense to not put the initial '/' in the filename as the name
is relative to the top directory it belongs to.
By removing the the initial '/' in the filename we can re-introduce the
variable
core.project_files
to stay compatible with standard Lite. The project_files variable will
always point to the files table of the first entry of
core.project_directories.
2020-12-28 10:26:27 +01:00
Francesco Abbate
df74781da8
Fix project search and status view for new add directory feature
2020-12-27 18:28:21 +01:00
Francesco Abbate
e4fa196b33
Finalize add project directory feature
2020-12-27 11:32:52 +01:00
Francesco Abbate
39181a56fd
Use relative path for filenames in project directories
2020-12-27 09:47:58 +01:00
Francesco Abbate
5449781353
Minor cleanup to project directory stuff
2020-12-26 23:39:27 +01:00
Francesco Abbate
54518c438d
Cosmetic changes to names from previous commit
2020-12-26 23:29:18 +01:00
Francesco Abbate
ec730e9520
Test configuration with project_files stored separately for each directory
2020-12-26 21:22:57 +01:00
Francesco Abbate
2f50f21f57
Preliminary version of projects with multiple directories
2020-12-26 16:48:08 +01:00
Francesco Abbate
9e8e8f7543
Remove priority run mechanism
2020-12-26 11:30:20 +01:00
Francesco Abbate
499f085045
Use get_primary_node instead of Rootview:get_primary_view
2020-12-15 12:51:36 +01:00
Francesco Abbate
eadbe41064
Add core.on_quit function for plugins
...
To be used for plugins like workspace from exi/lite-plugins
2020-12-14 13:57:24 +01:00
Francesco Abbate
3a38ded396
Use core.reload_module instead of style.load
2020-12-13 13:04:06 +01:00
Francesco Abbate
1fc0409163
Merge branch 'project-manager'
2020-12-12 20:27:07 +01:00
Francesco Abbate
40ac899360
Restore core.quit and core.temp_filename to be compatible with Lite
2020-12-12 00:05:11 +01:00
Francesco Abbate
2373c63a0b
Complete the initial user configuration file
2020-12-11 14:49:03 +01:00
Francesco Abbate
9114148b45
Automatically reload style when saving the project user module
2020-12-10 17:56:53 +01:00
Francesco Abbate
6409b67ea2
Add core:restart function to restart the editor
2020-12-10 12:44:01 +01:00
Francesco Abbate
33109e6110
Fix responsiveness problem of open-folder command
2020-12-09 15:45:16 +01:00
Francesco Abbate
ba898b50fc
Force a clear of treeview on switch project
2020-12-08 23:35:49 +01:00
Francesco Abbate
8448eee79f
More accurate list of recent projects
2020-12-08 18:49:58 +01:00
Francesco Abbate
f882957ebc
Experimentally add priority run when scanning project files
...
Avoid yielding when a first scan is required but seems quite
ineffective.
2020-12-08 16:59:05 +01:00
Francesco Abbate
e88adc0567
Move project manager into core init file
2020-12-08 16:57:57 +01:00
Francesco Abbate
ebaa2b4f26
Fix bug related to creation of user's init file
2020-12-07 17:38:36 +01:00
Francesco Abbate
ca9bf21819
Reword name for identifying primary view
2020-12-06 13:24:55 +01:00
Francesco Abbate
23575b309e
Fix syntax error with previous commit
2020-12-06 11:37:05 +01:00
Francesco Abbate
1c4b8cf315
Fix documentation and behavior for 1.13 release
2020-12-06 11:23:33 +01:00
Francesco Abbate
926e004c41
Preliminary version of project manager
...
Adapted from contribute rxi/lite-plugins but changed to avoid restarting
the application when switching project.
Current problem:
- the reload of the treeview take some time without any feedback for the
user
2020-12-06 00:57:27 +01:00
Francesco Abbate
a337f893d9
Implement user's config as init file and add directory into package.path
...
Create the user's config init file if lite user's config directory does
not exists.
No longer use the awkward package.searchers but instead add user's
config dir at the end of package path.
2020-12-02 16:03:31 +01:00
Francesco Abbate
3589d7d3c0
First implementation of unix-like data directory
...
It basically works by setting the data directory to
$prefix/share/lite-xl
where $prefix is determined so that $prefix/bin corresponds to EXEDIR.
The packages 'user' and 'user.*' are loaded from the directory
'$HOME/.config/lite-xl'.
2020-12-02 00:23:15 +01:00
Francesco Abbate
70412b520b
Fix cursor blinking problem
...
The problem was that when the editor had no events the cursor was not
blinking because the event loop was blocking on wait_event.
Now we no longer calls wait_event without a timeout if the windows has
the focus. When the window has the focus the timeout is set to 1 / fps
so that the cursor can blinks.
In addition we react to the "focus lost" event to ensure the documents
are redrawn without the cursor.
2020-11-21 16:36:32 +01:00
Francesco Abbate
82dc76dd00
Add recently visited files in the list when using find file command
2020-11-16 23:52:51 +01:00
Francesco Abbate
16e6a6db9d
Stop scanning project file when a maximum limit is reached
...
To avoid excessive memory usage when opening in a directory with too many files.
Introduce the config variable config.max_project_files to choose the limit.
The mechanism introduced avoid using excessive memory but it fails to
let user access all the files in the directory. A better implementation
should not impose any limits but read each subdirectory on-demand, only
as they are expanded in the tree-view.
2020-11-16 18:12:55 +01:00
Francesco Abbate
edaa8fb42b
Add a mechanism to avoid blank window at startup
2020-11-16 14:49:41 +01:00
Francesco Abbate
fe0dda8309
Merge remote-tracking branch 'rxi/master' into agg-font-renderer
2020-06-16 15:00:47 +02:00
Francesco Abbate
2c6bd874fa
Avoid running when there are no events and threads do not need to run
2020-06-16 14:54:08 +02:00
rxi
7517d0ef55
Changed EXEDIR to be used as default project dir
2020-06-13 08:56:13 +01:00
rxi
7fbefe40d5
Made `system.set_window_title` only be called on title change
2020-05-30 08:53:48 +01:00
rxi
74755f5b4a
Simplified implementation of `core.temp_filename()`
2020-05-27 11:38:42 +01:00
rxi
064b6d0b95
Fixed changing of cwd and loading of commandline files
...
the current-working-directory is now set at the start of `core.init` after the
absolute path for all filename arguments have been resolved
2020-05-26 10:26:20 +01:00
rxi
257b9ab753
Added `core.temp_filename()`
2020-05-25 08:58:12 +01:00
rxi
c2d27ab3f7
Removed `core.project_dir`
2020-05-24 13:50:32 +01:00
rxi
82e33dd2de
Moved event-waiting when not focused to after run_threads()
2020-05-24 13:43:34 +01:00
rxi
946c125fd4
Changed `core.redraw` to be set to `true` by default
...
As the window isn't created until the first frame is drawn this is required to
assure the window is ever shown without relying on the assumption that some
other part of the program would have set this to true
2020-05-24 08:04:47 +01:00
rxi
28b1844a8b
Added support for dropping a folder onto the window
2020-05-23 11:31:08 +01:00
rxi
7aabfebfa0
Fixed mouse-position resolution when dropping a file
2020-05-20 10:33:08 +01:00
rxi
08ce7e2563
Fixed stuck mouse-drag-selection on dropped-file
...
Resolves #109
2020-05-20 09:52:01 +01:00
rxi
bc4bf3d384
Added core.set_active_view(); removed `focusable` boolean from View
2020-05-19 14:55:46 +01:00
rxi
8ec717f240
Added temporary backwards compatibility for `core.project_dir`
2020-05-18 10:28:01 +01:00
rxi
4ae0d477c0
Made lite set project dir to CWD; removed core.project_dir
...
Fixes #100
2020-05-17 17:05:56 +01:00
rxi
4644154e5b
Added `config.ignore_files`
...
Filenames that match either the single pattern provided by
`config.ignore_files`, or any pattern in a table of patterns, will be ignored
when lite is filling the `core.project_files` table
Resolves #77
Resolves #102
2020-05-17 13:38:45 +01:00
rxi
c215eff6d8
Improved idle CPU utilisation when not-focused, added system.wait_event()
2020-05-11 00:21:07 +01:00
rxi
a651d48e84
Wrapped `core.on_event` calls in `core.try`
2020-05-09 08:38:51 +01:00
rxi
22171fa802
Simplified core.step()
2020-05-08 20:44:53 +01:00
rxi
de94c8a13c
Removed unused variables in core.init
2020-05-07 22:25:52 +01:00
rxi
5acc391288
Added logging when project module is loaded
2020-05-07 13:41:39 +01:00
rxi
73996e3dc9
Changed core to store `modified` and `size` in project_files table
2020-05-06 17:03:10 +01:00
rxi
5361bfaf9c
Added open-[project|user]-module commands, renamed command/file finder commands
2020-05-06 14:48:04 +01:00
rxi
271e5434d0
Added support for a `.lite_project.lua` file in project directory
2020-05-06 13:29:35 +01:00
rxi
7610e1064f
Added multiline support for LogView's messages
2020-05-06 00:06:27 +01:00
rxi
439537d63e
Fixed format string passed to core.error() in core.try()
2020-04-26 21:40:25 +01:00
rxi
accf09c4f9
Changed printed filenames to use format-specifier "%s" instead of %q
...
Fixes #22
2020-04-25 13:26:55 +01:00
rxi
c658b6f1ca
Removed underscore from start of globals, added VERSION
...
eg. `_SCALE` => `SCALE`
prevents conflict with lua's own _NAME globals
2020-04-25 09:58:01 +01:00
rxi
9a32a00c73
Made core.log/error store call location instead of view
2020-04-22 00:02:35 +01:00
rxi
73e96c2641
Made project_scan_thread() ignore directories it can't open
...
Should fix #30 and #7
2020-04-21 23:43:35 +01:00
rxi
4191cf2c08
Added `core.try` wrapping of function passed to `core.add_thread`
2020-04-21 23:23:34 +01:00
rxi
d8c4bfa6ba
Initial commit
2019-12-28 11:17:56 +00:00