Skip to content

Lite XL v2.1.2 Release Candidate 4

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 23 Dec 05:35
· 223 commits to master since this release
bd9a2b0

This release addresses some issues present in the previous release.

Downloads

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 define LITE_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 if execv() 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 the LITE_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} to timeouts >= 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