lite-xl

A lightweight text editor written in Lua

MIT License

Stars
4.3K

Bot releases are hidden (Show)

lite-xl - Lite XL 2.0.5

Published by franko over 2 years ago

This new release fixes some outstanding problem with the directory monitoring and add some minor improvements.

Improved project's module

Now any modification to the project's module is immediately applied when the file is saved.
This is very useful to configure a config.ignore_filesand have an immediate feedback.

As an additional improvement, now when reloading the project's module, we check again if the project fits within the maximum number of files and the application acts accordingly.
This means that if a project exceeds the max project files limit and we act by ignoring some large directories we immediately get back the usual behavior with all the project files indexed and easily reachable.

To be also more beginner friendly now, when creating a new project's module, we propose a template with some useful instructions.

Ignore files on path

Until now the ìgnore_files`mechanism was limited to the name of the file or directory and it was not possible to look at its path within the project folder.
We solved the problem by implementing two new mechanisms inspired by gitignore.

Essentially there are two new rules:

  • if a '/' or a '/$' appear at the end of the pattern it will match only directories
  • if a '/' appears anywhere in the pattern except at the end the pattern will be
    applied to the path

In the first case, when the pattern corresponds to a directory, a '/' will be
appended to the name of the directory before checking the pattern.

In the second case, when the pattern corresponds to a path, the complete path of
the file or directory will be used with an initial '/' for the project's root.

The new mechanisms are backward compatible so existing project's module should work as before.

Directory Monitoring Fixes

Fix several problems with the directory monitoring library.
Now the application should no longer assert when some related system call fails and we fallback to rescan when an error happens.
On linux we no longer use the recursive monitoring which was a source of problem.

Directory monitoring is now aware of symlinks and treat them appropriately.

Fix problem when encountering special files type on linux.

Improve directory monitoring so that the related thread actually waits without using
any CPU time when there are no events.

Project Change Improvements

Improve the suggestion when changing project folder or opening a new one.
Now the previously used directory are suggested but if the path is changed the actual existing directories that match the pattern are suggested.
In addition always use the text entered in the command view even if a suggested entry is highlighted.

With the new implementation it is to switch to a recently used project but you can also navigate the filesystem to easily find any directory.

NagView Improvements

The NagView warning window now no longer moves the documents' content.
The message is now completely drawn over the existing content to be less intrusive.

lite-xl - Lite XL 2.0.4

Published by franko almost 3 years ago

Fix some bugs related to newly introduced directory monitoring using the dmon library.

Fix a problem with plain text search using Lua patterns by error.

Fix a problem with visualization of UTF-8 characters that caused garbage characters
visualization.

Other fixes and improvements contributed by @Guldoman and @adamharrison.

lite-xl - Lite XL 2.0.3

Published by franko almost 3 years ago

Replace periodic rescan of project folder with a notification based system using the dmon library. Improves performance especially for large project folders since the application no longer needs to rescan.
The application also reports immediately any change in the project directory even when the application is unfocused.

Provide out-of-branch LuaJIT-based version of the application.

Improved find-replace reverse and forward search.

Fixed a bug in incremental syntax highlighting affecting documents with multiple-lines comments or strings.

The application now always shows the tabs in the documents' view even when a single document is opened. Can be changed with the option config.always_show_tabs.

Fix problem with numeric keypad function keys not properly working.

Fix problem with pixel not correctly drawn at the window's right edge.

Treat correctly and open network paths on Windows.

Add some improvements for very slow network filesystems.

Fix problem with python syntax highlighting.

lite-xl - Lite XL 2.0.2

Published by franko about 3 years ago

These release includes mainly fixes for known problems but also a few nice improvements.

Long time Lite XL users should not miss a change in the behavior of ctrl+d that now add the next occurrence of the current selection in mutli-cursor mode.

Below the details of the changes.

Bug fixes

  • Fix problem project directory when starting the application from Launcher on macOS.
  • Fix problem when trying to close an unsaved new document.
  • No longer shows an error for the -psn argument passed to the application on macOS.
  • Fix treeview:open-in-system command on Windows.
  • Fix rename command to update name of document if opened.

Improvements

  • Improved LogView. Entries can now be expanded and there is a context menu to copy the item's content.
  • Change the behavior of ctrl+d to add a multi-cursor selection to the next occurrence. The old behavior to move the selection to the next occurrence is now done using the shortcut ctrl+f3.
  • Added a command to create a multi-cursor with all the occurrences of the current selection. Activated with the shortcut ctrl+shift+l.
  • Improve the find and replace dialog so that previously used expressions can be recalled using "up" and "down" keys.
  • Build package script rewrite with many improvements.

Style changes

  • Use bigger fonts by default.

With many thanks to the contributors: @adamharrison, @takase1121, @Guldoman, @redtide, @Timofffee, @boppyt, @Jan200101.

lite-xl - Lite XL 2.0.1

Published by franko about 3 years ago

With this release we fix a few bugs and we mandate the mod-version 2 for plugins. This means that users should ensure they have up-to-date plugins for Lite XL 2.0.

Here some details about the bug fixes:

  • fix a bug that created a fatal error when using the command to change project folder or when closing all the active documents
  • add a limit to avoid scaling fonts too much and fix a related invalid memory access for very small fonts
  • fix focus problem with NagView when switching project directory
  • fix error that prevented the verification of plugins versions
  • fix error on X11 that caused a bug window event on exit

Previous release note for 2.0.0

This major release introduce some important new features:

  • multi-cursor support
  • find & replace using regular expressions
  • contextual menu
  • easy resize of coding font
  • support to start sub-processes with input-output channel communications
lite-xl - Lite XL 2.0.0

Published by franko about 3 years ago

This major release introduce some important new features:

  • multi-cursor support
  • find & replace using regular expressions
  • contextual menu
  • easy resize of coding font
  • support to start sub-processes with input-output channel communications
lite-xl - Lite XL 2.0-beta1

Published by franko over 3 years ago

First beta release for new 2.0 version.

lite-xl - Lite XL 1.16.12

Published by franko over 3 years ago

Include syntax support for C++ from lite-plugins repository, adapted to use new multi-part patterns.

Respect the XDG_CONFIG_HOME variable if set to define the USERDIR.

Fix an error that prevented navigating large repositories in some rare situations.

Minor performance improvements for drawing operations and events handling.

Improve macOS keybindings thanks to @bjornbm and @prantlf.

Improve behavior of applications when restoring workspaces to avoid displaying empty documents.

lite-xl - Lite XL 1.16.11

Published by franko over 3 years ago

Fix problem with large directories

When opening directories with too many files lite-xl now keep displaying files and directories in the treeview.
The application remains functional and the directories can be explored without using too much memory.
In this operating mode the files of the project are not indexed so the command "Core: Find File" will act as the "Core: Open File" command.
The "Project Search: Find" will work by searching all the files present in the project directory even if they are not indexed.

Alternate font based on syntax

Implemented changing fonts per syntax group by @liquidev.

Example user module snippet that makes all comments italic:

local style = require "core.style"

-- italic.ttf must be provided by the user
local italic = renderer.font.load("italic.ttf", 14)
style.syntax_fonts["comment"] = italic

Other improvements and fixes

Improved indentation and comment/uncomment behavior by @adamharrison.

Fix problem when starting session in maximized mode by @redtide.

Fix bug with close button not working in borderless window mode.

Fix problem with normalization of filename for opened documents.

Improve detectindent plugin to avoid excessive usage of CPU affecting editing commands.

lite-xl - Lite XL 1.16.10

Published by franko over 3 years ago

Improved syntax highlight system thanks to @liquidev and @adamharrison.
Using the new system we provide more a accurate syntax highlighting for Lua, C and C++.
Other syntax improvements contributed by @vincens2005.

On macOS declare minimum OS version as 10.13 and request permission to access Documents folder.

Move to JetBrains Mono and Fira Sans fonts for code and UI respectively.
Thet are provided under the SIL Open Font License, Version 1.1.
See doc/licenses.md for license details.

Fixed bug with fonts and rencache module.
Under very specific situations the application was crashing due to invalid memory access.

Add documentation for keymap binding, thanks to @Janis-Leuenberger.

Added a contributors page in doc/contributors.md.

lite-xl - Lite XL 1.16.9 macos testing dev-1

Published by franko over 3 years ago

Testing support for macOS 10.13.

lite-xl - Lite XL 1.16.9

Published by franko over 3 years ago

Hotfix for a bug that prevented the creation of a new file.

Fix a bug related to the resizing of nested panes.

lite-xl - Lite XL 1.16.8

Published by franko over 3 years ago

Bugfixes and improvements

Fix application crash when using the command core:restart.

Improve application startup to avoid flashing window's problem.

Fix a few problems with documents' filenames.

New plugins versioning

Move to new plugins versioning scheme using tag mod-version:1.
The mod-version is a single digit version that tracks the plugins compatibility version independently from the lite-xl version.

For backward compatibility the tag -- lite-xl 1.16 is considered equivalent to mod-version:1 so users don't need to update their plugins.

Both kind of tags can appear in new plugins in the form:

-- mod-version:1 -- lite-xl 1.16

where the old tag needs to appear at the end for compatibility.

New contributors

This release includes some improvements from a new contributors @adamharrison, welcome onboard!

lite-xl - Lite XL 1.16.7

Published by franko over 3 years ago

Add support for retina displays on Mac OS.

Fix a few problems related to file paths.

lite-xl - Lite XL 1.16.6 sdl-renderer-2

Published by franko over 3 years ago

This testing release is the second iterations use a new rendering approach based on SDL's Renderer.

The new architecture should allow to use the full resolution of Retina displays on macos.

lite-xl - Lite XL 1.16.6 sdl-renderer-1

Published by franko over 3 years ago

This testing release use a new rendering approach based on SDL's Renderer.

The new architecture should allow to use the full resolution of Retina displays on macos.

lite-xl - Lite XL 1.16.6

Published by franko over 3 years ago

Plugin verification

Implement a new system to check the compatibility of plugins by checking a release tag.
Plugins that don't have the release tag will not be loaded.
Users are invited to update the plugins from the official repository https://github.com/franko/lite-plugins .

Improved NagView

Improve and extend the NagView with keyboard commands and introduce dialog commands.
Special thanks to @takase1121 for the implementation and @liquidev for proposing and
discussing the enhancements.

Support for Mac OS X

Add support to build on Mac OS X with specific keyboard bindings.
We provide in addition a notarize application bundle.
Special thanks to @mathewmariani for his lite-macos fork, the Mac OS specific
resources and his support.

On text change hook

Add hook function DocView.on_text_change so that plugin can accurately react on document changes.
Thanks to @vincens2005 for the suggestion and testing the implementation.

Border-less window

Enable borderless window mode using the config.borderless variable.
If enable the system window's bar will be replaced by a title bar provided
by lite-xl itself.

Fixed a bug in the graphics engine

Fix a drawing engine bug that caused increased CPU usage for drawing operations.

Add function to set window opacity

Add system.set_window_opacity function. Many thanks to @AqilCont for his suggestion.

Integrate draw-white-space plugin

Add codepoint replacement API to support natively the "draw whitespaces" option.
It supersedes the drawwhitespace plugin. If can be configured using the
config.draw_whitespace boolean variable and enabled and disables using the
commands draw-whitespace:toggle, draw-whitespace:enable,
draw-whitespace:disable.

lite-xl - Lite XL 1.16.5

Published by franko over 3 years ago

Hotfix for Github's issue https://github.com/franko/lite-xl/issues/122

Added notarized Mac OS app.

lite-xl - Lite XL 1.16.4

Published by franko over 3 years ago

Add tooltips to show full file names from the tree-view. Contributed by @takase1121.

Introduce NagView to show warning dialog about unsaved files. Contributed by @takase1121.

Detect High-DPI displays on Linux using Xft.dpi entry from xrdb's output. Contributed by @daubaris with modifications by @franko.

Made animations independent of framerate, and added a config setting config.animation_rate for customizing the speed of animations. Contributed by @liquidev.

Made borders between tabs look cleaner. Contributed by @liquidev.

Fix problem with files using hard tabs.

lite-xl - Lite XL 1.16.3

Published by franko over 3 years ago

This release correct some serious problems related to font rendering, most notably the bug about the cursor positioning when using mouse. Upgrade is recommended.

It took time but with this release the subpixel text positioning now works well and accurately. Text using proportional should appear now more evenly spaced and pleasant because some font's spacing errors have been fixed.

Fix also dysfunctional error message window. The writing of the error message in the standard output and in an error file is now correctly done.

Fixed also a problem revealed by the usage of an old version of the detectindent plugin.