* chore(resources): rename macos_arm64.txt to macos-arm64.txt
This matches the platform-arch convention like many other parts of the project.
* chore(resources/cross): rename wasm.txt to unknown-wasm32.txt
* refactor(scripts/common.sh): use parameter expansion instead of if else
* feat(scripts/common.sh): support custom arch and platform for get_default_build_dir
* feat(scripts/build.sh): add --cross-platform, --cross-arch and --cross-file
* feat(scripts/package.sh): add --cross-platform and --cross-arch
* feat(build-packages.sh): add support for new options in build.sh and packages.sh
* ci(build): make arm64 binaries in CI
* ci(build): do not install external libraries
* ci(build): fix invalid artifact name
* ci(build): fix INSTALL_NAME
* ci(build): change name for macos artifacts
* ci(build): add script to build universal dmgs from individual dmgs
* ci(build): build universal dmgs
* fix(make-universal-binaries): fix wrong path for hdiutil
* ci(build): rename macos action
* fix(make-universal-binaries.sh): fix wrong pathname for ditto
* ci(release): build macos universal binaries
* ci(release): remove useless variables
* ci(release): fix wrong dependency
* ci(build): fix old ubuntu version
This version will be restored once I complete some container-specific fixes.
* ci(build): make build_macos_universal depend on release
* ci(build): fix wrong dmg dir
* style(ci): capitalize 'universal' for CI name
* fix(make-universal-binaries.sh): fix truncated dmg name when it contains dots
* ci: styling changes
* ci(release): install appdmg only
* refactor(native_api_header): upgrade header files to Lua 5.4.
Almost all of the symbols in this file was from 5.2. This will obviously
not work because some function signatures have changed and some have
completely wrong return values, etc.
This commit updates the header files to Lua 5.4 based on the source code
and changes a few things.
* refactor(plugin_api): move the header into include/
* fix(lite_xl_plugin_api.h): include stdlib to avoid errors with exit
* refactor(lite_xl_plugin_api.h): do not return in SYMBOL_WRAP_CALL
* fix(lite_xl_plugin_api.h): fix wrong way of passing varargs
* fix(lite_xl_plugin_api.h): fix differing lua_rawlen definition
* fix(lite_xl_plugin_api.h): fix fallback function signature
* fix(lite_xl_plugin_api.h): fix conversion from void * to function pointer
This mistake escaped my eyes when reviewing #1437 and causes
some symbols to not be exported, because the preprocessor macros
are expecting multiple LUA versions to evaluate as true at once.
The fix is to replace `&&` with `||`.
* Fix incorrect check in doc:raw_remove
Restore caret position on command doc:cut
* merge cursors and fix new line in clipboard
* add new line to the last copied line
* Use Lua-provided string lengths for `system.path_compare`
* Make `system.path_compare` more case-aware
Before, strings like `README.md` would be sorted before `changelog.md`,
because we only looked at the raw ascii values.
Now the character case is considered as a secondary sorting key.
* feat(system): update api_require for more symbols
* fix(system): fix missing 5.1 symbols
* fix(system): add more missing symbols
* fix(system): add all symbols
We got'em this time. I swear.
* fix(system): fix undefined symbols due to conditional compilation
There is only pain and suffering.
Turns out some of the symbols are only exported when the options are enabled.
We need to preprocess the header.
* refactor(ci): use microsoft/setup-msbuild
* fix(ci): fix wrong option name for setup-msbuild
* fix(ci): bump setup-python version
* fix(lua-utf8-patch): enable support for windows vista and above
* fix(ci): use vs backend
* fix(ci): reconfigure project manually after patch
* fix(ci): add a separate build step
* fix(ci): use msvc-dev-cmd again
Instead of completely disabling them, we now use their internal toggle.
Also moved `drawwhitespace` commands inside the plugin.
---
* Fixed bug where commands would show even when plugin was disbled. Also removed antiquated way of disabling.
* Fixed typos.
* Also moved trimwhitespace out of config, if it already has a default enabled value of false.
* Changed documentation.
* Clarified comments.
* Made coroutines make more sense, and fixed a bug.
* Fixed typo.
* Additional checking for off-cycles.
* Fixed issue with calling step too much.
* If we have no redraw, set next step time for next frame.
* Added in `now` variables to reduce calls.
* Make `TreeView` follow the current tab
* Use `TreeView:toggle_expand` in `TreeView:set_selection_to_path`
We can't use `item.expanded` directly because we need to update the
cached tree structure.
* fix(gitignore): add exclusion for manifest files
* feat(windows): add application manifest
* feat(build): use application manifest on windows
* refactor(build): use genrate_file to generate the manifest
* style(manifest): remove trailing whitespace
* Add `Object:{is_class_of,is_extended_by}` to check inverse relationships
* Make tab scrolling more flexible
This adds tab scrolling commands and connects them to mouse scroll
events.
This way scrolling behavior can be customized more easily.
For example an alternative behavior could be:
```lua
keymap.add({
["wheelup"] = "root:switch-to-hovered-previous-tab",
["wheeldown"] = "root:switch-to-hovered-next-tab"
})
```
* Allow empty groups as first match in tokenizer
* Avoid pushing tokens with empty strings
* Allow groups to be used in end delimiter in tokenizer
* Use the first entry of the type table for the middle part of a subsyntax
This applies to delimited matches with a table for `type` and without a
`syntax` field.
* Match only once if using `at_start` in tokenizer `find_text`
* Check if match is escaped in the "close" case too
Also allow continuing matching if the match was escaped.
* Warns user if trying to disable a plugin that is already
enabled when doing `config.plugins.plugin_name = false` and also
prevents replacing the current plugin config table with the false
value to mitigate runtime issues.
* Uses a merge strategy by default when assigning a table to a plugin
config to prevent a user from removing a plugin default config values
as experienced and explained on this issue lite-xl-plugins#158
* This change is basically backwards compatible, but will require a
change on the settings ui plugin on how it checks for already
enabled plugins, since rawget will no longer be a working hack
or workaround for this.
* As suggested by Adam dropped loaded key and switched to package.loaded
* Make mod-version follow semver
Now plugins can optionally specify the minor and patch version they
support.
If no minor or patch version is specified, it's considered 0.
Plugins are only loaded if they have the same major version and a
smaller or equal minor+patch version.
* Add modversion to logging and plugin mismatch nagview
---------
Co-authored-by: Jefferson González <jgmdev@gmail.com>
* fix Doc contextmenu not registering commands if scale plugin is not found
* fix TreeView contextmenu commands not working if the mouse hovers DocView
* add keyboard navigation to TreeView contextmenu
* fix incorrect contextmenu predicate
* refactor: remove sort_positions usage
* refactor: move draw conditional to has_any_selection and other changes
- snake case (sssss)
- break after finding selection
* fix: typo of config plugins
* fix: do check for show selected only properly
* feat: only draw within selection per substitution
* `drawwhitespace`: Make `show_selected_only` work properly
---------
Co-authored-by: Guldoman <giulio.lettieri@gmail.com>