Lite XL v2.1.2 Release Candidate 4
Pre-releaseThis release addresses some issues present in the previous release.
Downloads
- Windows (Setup): 32-bit, 64-bit
- Linux (64-bit): AppImage, tarball
- macOS: Universal, Intel, Apple Silicon
Other downloads such as ZIP files for Windows and Base releases are available below.
New Features
-
The context menu in TreeView is now navigable with a keyboard.
(#1338) -
A universal build of Lite XL is now available for macOS.
This build runs natively on both Intel and Apple Silicon macs.
(#1458) -
Most Unicode characters should be displayed properly
if your fonts support them.
(#1524) -
LogView will no longer scroll automatically if the user had scrolled.
The LogView will only scroll automatically when the user scrolls up
to the last entry.
(#1546) -
When using different fonts (especially fonts that render different scripts),
the letters will be aligned vertically.
(#1560) -
Unsaved named files are now saved in the workspace.
(#1597) -
macOS builds are now signed with a developer certificate.
This allows the user to right click the application in Finder and execute
it directly.
(#1656)
Performance Improvements
-
Allow command buffer to be expanded.
(#1297) -
Use table.move to implement common.splice.
(#1324) -
Create renderer only when it doesn't exist.
(#1315) -
Avoid drawing hidden text in DocView:draw_line_text.
(#1298) -
Don't calculate widths per-uft8-char when not needed.
(#1409) -
Allow tokenizer to pause and resume in the middle of a line.
(#1444) -
Optimize CI build times on MSYS2.
(#1435) -
Significant memory usage improvements when using huge fonts on Windows.
(#1555) -
The program should be much more responsive when running background tasks.
(#1601)
Backward Incompatible Changes
-
The native plugin API is now usable on multiple source files,
without causing any duplicated symbol errors during compilation.
Plugins using the new plugin API header must defineLITE_XL_PLUGIN_ENTRYPOINT
before importing the header, in one of their source files.
(#1335) -
The native plugin API header now follows the Lua 5.4 API.
Previously, the plugin API header followed the Lua 5.2 API.
(#1436) -
On Linux,
process.start()
will now throw an error ifexecv()
fails.
(#1363) -
Lite XL will use the default
SCALE
of 1 due to unreliable display
scale detection. This may be fixed in a later version of Lite XL.
Set theLITE_SCALE
environment variable to override this value.
Fixes and Other Changes
Fixes
-
Fix minor typos in user module
(#1289) -
Do not allow users to create an empty font group
(#1303) -
Fix a memory leak
(#1305) -
Make dirwatch sorting compatible with what file_bisect expects
(#1300) -
Handle readlink errors
(#1292) -
Disable horizontal scrolling when linewrapping is enabled
(#1309) -
Update widgets install location
-
Add missing luaL_typeerror symbol to plugin API
(#1313) -
Defer lua error until after cleanup
(#1310) -
Make empty groups in regex.gmatch return their offset
(#1325) -
Add missing header declaration
-
Fix msys build now requiring ca-certificates
(#1348) -
Fix path to macOS arm64 cross file in GitHub workflows
-
Fix Doc contextmenu not registering commands if scale plugin is not found
(#1338) -
Fix TreeView contextmenu commands not working if the mouse hovers DocView
(#1338) -
Fix incorrect contextmenu predicate
(#1338) -
Properly rescale NagView on scale change
(#1379) -
Scale plugin also rescales
style.expanded_scrollbar_size
(#1380) -
Improve DocView:get_visible_line_range precision
(#1382) -
Fix up some post 5.1/JIT Symbols
(#1385) -
Fix incorrect x_offset if opened docs have different tab sizes
(#1383) -
Use correct view for scrolling to find-replace:repeat-find results
(#1400) -
Improve text width calculation precision
(#1408) -
Add asynchronous process reaping
(#1412) -
Fix cursors positions when deleting multiple selections
(#1393,
#1463) -
Fix invalid EXEFILE and EXEDIR on Windows
(#1396) -
Fix
os.getenv()
not supporting UTF-8 output
(#1397) -
Fix differing stacktrace on stdout and file
(#1404) -
Update api_require to expose more symbols
(#1437) -
Make system.path_compare more case-aware
(#1457) -
Fix for api_require wrong macro && conditions
(#1465) -
Merge carets after doc:move-to-{previous,next}-char
(#1462) -
Process API improvements (again)
(#1370) -
Make system.path_compare more digit-aware
(#1474) -
Check for HANDLE_INVALID in Process API
(#1475) -
Fix linewrapping bug to do with wordwrapping
-
Fix compiler warning for printing size_t in rencache.c
-
Return error string from C searcher
-
Restore horizontal scroll position after scale change
(#494) -
Fix memory leak in renderer.c when freeing glyphsets
-
Move lineguide below blinking cursor
(#1511) -
Close lua state when exiting on a runtime error
(#1487) -
Mark linewrapping open_files table as weak
-
Don't use core.status_view if not yet initialized when logging
-
Revert "core syntax: strip the path from filename on syntax.get (#1168)"
(#1322) -
Make Doc:sanitize_position return a more appropriate col
(#1469) -
Skip checking files if no filename was provided to syntax.get
-
Normalize stroke before adding keybind
(#1334) -
Make DocView aware of scrollbars sizes
(#1177) -
Normalize strokes in fixed order
(#1572) -
Defer core:open-log until everything is loaded
(#1585) -
Fix returned percent when clicking the Scrollbar track
-
Fix C++14 digit separators
(#1593) -
Make linewrapping consider the expanded Scrollbar size
-
Fix dimmed text when antialiasing is turned off
(#1641) -
Mark unsaved named files as dirty
(#1598) -
Make
common.serialize()
locale-independent and nan/inf compatible
(#1640) -
Ignore keypresses during IME composition
(#1573) -
Fix deadlock if error handler jumps somewhere else
(#1647) -
Avoid considering single spaces in detectindent
(#1595) -
Fix deleting indentation with multiple cursors
(#1670) -
Fix
set_target_size
passing the wrong value to plugins
(#1657) -
Limit
system.{sleep,wait_event}
totimeouts >= 0
(#1666) -
Fix running core.step when receiving an event while not waiting
(#1667) -
Fix dirmonitor sorting issues
(#1599) -
Scale mouse coordinates by window scale
(#1630) -
Made coroutines make more sense, and fixed a bug
(#1381) -
Fix selecting newlines with
find-replace:select-add-{next,all}
(#1608) -
Fix editing after undo not clearing the change id
(#1574) -
Fix language_js regex constant detection
(#1581) -
Fix patterns starting with
^
in tokenizer
(#1645) -
Use x offset to define render command rect in rencache_draw_text
(#1618) -
Improve font/color change detection in
language_md
(#1614) -
Allow long commands and envs on process_start
(#1477) -
Fix typo in
drawwhitespace.lua
-
Fix NagBar save failed message
(#1678) -
Fix typo in
drawwhitespace.lua
-
Add autocompletion to multicursor
(#1394)
Other Changes
-
Make api_require's nodes const
(#1296) -
Don't set a value twice
(#1306) -
Center title and version in emptyview
(#1311) -
Use master branch for packaging plugins for addons release
-
Reorganize resources folder and add wasm target
(#1244) -
Replace uses of SDL_Window with RenWindow
(#1319) -
Update dummy dirmonitor method signature to match prototypes
-
Remove static libgcc from meson
(#1290) -
Pass RenWindow by argument
(#1321) -
Get rid of annoying forward slash on windows
(#1345) -
Improve plugins config table handling
(#1356) -
Add manifest on Windows
(#1405) -
Split Command struct into different structs for each command type
(#1407) -
Move SetProcessDPIAware to manifests
(#1413) -
Use clipping functions provided by SDL
(#1426) -
Aggregate SDL_Surfaces and their scale in RenSurface
(#1429) -
Disable trimwhitespace and drawwhitespace via their configs
(#1446) -
Bump dependency versions
(#1434) -
Improvements to cross-compilation
(#1458) -
Move native plugin API header into include/
(#1440) -
Build releases with Ubuntu 18.04 container
(#1460) -
Update GitHub Actions dependencies
-
Make all parameters for set_window_hit_test optional in documentation
-
Attach command buffer to Renderer Window
(#1472) -
Fix comment typo in object.lua
(#1541) -
Allow setting custom glyphset size
(#1542) -
Use FreeType header names in renderer.c
(#1554) -
Add documentation for core.common
(#1510) -
Document missing parameter for system.path_compare
(#1566) -
Add documentation for core.command
(#1564) -
Update the Installing prebuild section in README.md
(#1548) -
Update README.md to remove previously installed files
prior to installing a new version -
Use lite-xl Build Box to build releases
(#1571) -
Use Lua wrap by default
(#1481) -
Add documentation for contextmenu
(#1567) -
Use dmgbuild to create DMGs
(#1664) -
Un-hardcode lua subproject detection and update dependencies
(#1676) -
Make license time-independent
(#1655)
Full Changelog: v2.1.2-rc3...v2.1.2-rc4