| backport fix(diagnostic): status() respects config.signs (#39601) Problem: diagnostic.status only follows the config.status.format setting to determine how to display diagnostic signs. However, signs can actually also be configured via config.signs.text. Solution: If the user has set symbols via config.status.format, let that determine the content of signs; otherwise, use config.signs.text for display. TODO: drop support type(config.status.format) == 'table'; users should just configure config.signs.text directly. Co-authored-by: Yi Ming <ofseed@foxmail.com> | 1 个月前 |
| feat(harmonyos): complete Neovim port to HarmonyOS PC This commit completes the Neovim port to HarmonyOS PC (HongMeng Kernel 1.11.0, aarch64). Key changes: 1. **CMake configuration**: Added HarmonyOS detection and compatibility setup 2. **Static linking scheme**: Bypass HarmonyOS dynamic loading restrictions 3. **TTY/SELinux fixes**: Modified libuv to skip fd copying, avoid permission issues 4. **MessagePack compatibility**: Implemented dynamic data size detection 5. **Lua environment**: Static Lua interpreter for code generation 6. **Build system**: Complete build scripts with logging 7. **Documentation**: Comprehensive README with CodeArts IDE signing instructions 8. **Manual signing**: Added binary-sign-tool commands for self-signing Build process: - Clone neovim-harmonyos and harmonyos-deps repositories - Build dependencies with build-deps-harmonyos.sh - Build Neovim with build-ohos-with-log.sh - Manual signing if needed: binary-sign-tool sign -inFile build/bin/nvim -outFile build/bin/nvim -selfSign 1 - Run with run-nvim.sh The port supports all core Neovim functionality with static linking to avoid HarmonyOS dynamic loading restrictions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> | 6 个月前 |
| build: haiku os support #36639 Initial support for compiling on haiku os. Some deps can be pulled from haiku repos, some need to be compiled with nvim's dep build system: cmake -DUSE_BUNDLED_LIBUV=OFF -DUSE_BUNDLED_UNIBILIUM=OFF -DUSE_BUNDLED_LUAJIT=OFF -B .deps ./cmake.deps make -C .deps | 7 个月前 |
| test: replace busted with local harness Replace the busted-based Lua test runner with a repo-local harness. The new harness runs spec files directly under nvim -ll, ships its own reporter and lightweight luassert shim, and keeps the helper/preload flow used by the functional and unit test suites. Keep the file boundary model shallow and busted-like by restoring _G, package.loaded, package.preload, arg, and the process environment between files, without carrying extra reset APIs or custom assertion machinery. Update the build and test entrypoints to use the new runner, add black-box coverage for the harness itself, and drop the bundled busted/luacheck dependency path. AI-assisted: Codex (cherry picked from commit 55f9c2136e52d8719495b6021ce7e8d64c5141fe) | 2 个月前 |
| build: update-alternatives during deb install #37980 Problem: nvim is not added to the system alternatives index when installed via the .deb package, requiring users to explicitly invoke nvim rather than use 'vi' or 'vim' alternatives. Solution: Invoke update-alternatives in CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA steps. Co-authored-by: Mark Landis <anonymouspage@limsei.com> | 3 个月前 |
| Merge tag 'v0.12.3' into harmonyos-port-v12 NVIM v0.12.3 # -----BEGIN PGP SIGNATURE----- # # iQJjBAABCABNFiEEnUqVAyVy/SGE/eMZPkITCINFwW0FAmop4VYbFIAAAAAABAAO # bWFudTIsMi41KzEuMTIsMCwzExxqdXN0aW5rekBnbWFpbC5jb20ACgkQPkITCINF # wW3KLQ/7BCV8W1ZDoqBNv2kZH6B6UXMtyGf7+GDqWoMMk5LyniI94jR9yGwpsY7g # rEXoEVvXAsrSh9PQtOwHdx0Y6IEI40TsQqcfW2lthECWxw8mrZowFcmBWbZFfcX8 # +4/o0B5ba9r56tjzp653kuZCcY4kNEfTjaVTTn5HFKHtOK3nQoYCHth3+5fARtwp # HspP+y9eAh1chv8d99rMrnCYJbAeXZbBew5lp+ljGNr4pHQICGZFZisbNnoJsnDf # fjiCZuPKQ2QhwzoQ/6Y5o6gRZl+HNrVsTSUCV0pWFLqnAR/hXDtiI00hvFWxrU2c # JZfiYDaUhENt7nHOUdkq4TBWkZPmwoU+yC92MVIz8QwcI7ANe6LcmqQN+g0NEb4X # ygcnSiuxCK3wNzclgh0hJPkmkM+5jYmQEWxxlX8NLkOBbZQphtEoMcveaeKlYGs4 # BBSHbMGbTRJ9fxquDNYHrrNrVgslmWbXzxPAsaE32lfrDDDEeLBnq5s716KtDSN4 # PRXByXgN19UxBSyNJg+dmUYafyrGWLKpoAYi0UsLcZUUK099d9K3Xynq6cZPqGUs # KUjCE73TfSCqzQW1fEm5ElMtFsmWwbrlVXsUMZXyAS5Z9GhabidJoeI/dBVNn1NS # y0RnWg6n74VLJKf7k7UbH/wmDn8caFTChkZFN/TByctFDUZHyKE= # =hyOA # -----END PGP SIGNATURE----- # Conflicts: # src/gen/gen_char_blob.lua # src/nvim/CMakeLists.txt # src/nvim/lua/executor.c | 6 天前 |
| test: replace busted with local harness Replace the busted-based Lua test runner with a repo-local harness. The new harness runs spec files directly under nvim -ll, ships its own reporter and lightweight luassert shim, and keeps the helper/preload flow used by the functional and unit test suites. Keep the file boundary model shallow and busted-like by restoring _G, package.loaded, package.preload, arg, and the process environment between files, without carrying extra reset APIs or custom assertion machinery. Update the build and test entrypoints to use the new runner, add black-box coverage for the harness itself, and drop the bundled busted/luacheck dependency path. AI-assisted: Codex (cherry picked from commit 55f9c2136e52d8719495b6021ce7e8d64c5141fe) | 2 个月前 |
| feat(build.zig): add option to use system dependencies Problem: build.zig always downloads dependencies and statically links them, which is frowned upon by distro packagers. Solution: Add option to use system libraries. | 5 个月前 |
| NVIM v0.12.3 Following is a list of commits (fixes/features only) in this release. See :help news in Nvim for release notes. BREAKING -------------------------------------------------------------------------------- - f54f566bf830 diagnostic: deprecate format as a table FEATURES -------------------------------------------------------------------------------- - fd1b193d518b :restart: v:starttime, v:exitreason #39319 - c407e3e67b60 eval: treat Lua string as "blob" in writefile() #39098 - a0dcdcd8a0e9 treesitter: provide select() - 49efe692f36e vim.pos: accept buf=0 for current buf #39414 - ad27075c8d54 vim.pos: pos:to_offset(), pos.offset() (#39639) - b05675bcccba opts.scope in vim.ui.input (#39906) PERFORMANCE -------------------------------------------------------------------------------- - 96d5dd4107e0 vim.pos: use numeric index internally #39447 FIXES -------------------------------------------------------------------------------- - e230ff0439b0 vim._with may silence all cmdline-errors #34301 - 781c43ea051e api: adjust Visual position after nvim_buf_set_text #30690 - 5b8268356ac3 api: don't update 'title' when renaming non-curbuf #39743 - 4df16ecdb9d4 api: LuaRef leak in nvim_set_keymap on LHS too long (>=66 bytes) (#39376) - e5d6d2e769cc api: leak preview callback LuaRef in nvim_create_user_command (#39377) - f0baa1804384 channel: stack-buffer-overflow with exit during connection (#39387) - d9baaf7da16e ci: generate more data to stress output throttling test #39577 - f62ce1a42fda difftool: handle filenames containing spaces #39740 - fb56d5003285 eval: writestring() handling of null #39328 - 822778f7e56b excmd: use realtime for v:starttime, :uptime #39425 - 8fccb26cd3be fold: virtual lines duplicate foldopen (#39891) - 10695f44afe1 health: set 'tags' for help filetype #39742 - e069022215d5 help: fix CTRL character issue for :help {subject} #39537 - 445fe8a6b7af lsp: calc correct screen_width when opts.relative == 'editor' (#39977) - 93dc301781ad lsp: callHierarchy/outgoingCalls ranges are relative to caller, not callee #39336 - 5e6c8d4edf61 lsp: check window is still valid after async request #39396 - 8919b02eba50 lsp: dynamic registration for off-spec method #39544 - c4d3a3d3632c lsp: filter code_action diagnostics to the cursor #38988 - 27d01f2dbbc3 lsp: handle null id in JSON-RPC responses - aedbae4ab640 lsp: handle self-mapped methods in supports_method #39383 - 0bd6e62509b8 lsp: malformed edit if apply_text_edits() is called twice (#39347) - 378f5f49b3c2 lsp: show meaningful error on invalid completion response (#39476) - c9ca59ad282f lsp: util.lua attempt to concatenate userdata #39510 - e67f9c58534b lua: avoid __index when deciding if a table is a list #39556 - 731f9743e2ec lua: don't strip debuginfo in precompile module #39191 - b0bfce290fb7 lua: fields of nvim.spellfile.Opts are optional #39902 - 34bf0472ab0b marks: don't use spell decorations from other lines (#39441) - d1cf3ab4c36b marks: read from the correct variable in conceal_lines mark collection (#39991) - 33b6b0bfe5bc messages: avoid recursive rtp build due to msg_show #39888 - d725ead5ecdb messages: reset redirection message column after :echon #39472 - b490fba78682 mouse: mouse=n should not adjust visual selection - 17ddfde13197 net: :edit <uri> should set buftype=nofile #39915 - dd95e434e398 pack: only use tags that strictly comply with semver spec #39342 - 585c93204fcc path: nvim_get_runtime_file fails on DOS 8.3 filename #40144 - 42f6c1c44371 prompt: handle multi-element lists in prompt_appendbuf #39550 - 915880d252fe shada: bdelete'd buffers not stored in oldfiles #39070 - e4a9bd55b26c shada: set correct buffer number for local marks on read #39712 - 2389cf2e39aa shell: preserve CR when :! outputs to binary-mode buffer #39558 - 98098d8466ba startup: emitting useless OptionSet - ae9f7accdd82 statusline: no cmdline ruler for autocommand window - 39e8c584d5b5 terminal: memory leak in pending TermRequest StringBuilder #39333 - fa69cac7e315 terminal: memory leak when pasting '=' register (#39738) - 3a3405d964a4 test: only test for unibilium if a valid compilation string exists - dcf9e8a98e57 treesitter: crash in ts_parser_delete after gc #39497 - 4f22640b8682 treesitter: get_node_text() inconsistent trailing newline #39409 - 654c964d1aac trust: hash unchanged empty buffers as empty files #39027 - 70f22713a17f ui2: entering the pager fails if <ESC> is remapped to :fclose (#39462) - 13041a067ec6 ui2: error E518 when typing "vim:" in cmdline #39599 - a0ee5811b121 unittest: preprocess failure when __typeof declarations present #40145 - b9d39f5bb2c8 vim.fs: fs.dir() may return nil "type" on some filesystems #39749 - be4e7cfd6a6e vim.hl: range(0,…) highlight not cleared after buffer-switch #40130 - 79fd0b66553e vim.range: empty ranges semantics vs regular ranges #39474 - 2ec758f403bd vim.range: validate arguments on all cases #39415 - f83e0dcaf8cf vim.secure: read() command injection vulnerability #39918 BUILD -------------------------------------------------------------------------------- - a612ada9842e version bump - b1b489b316f1 docs: sort/lint class fields and keysets - 4f6c711fc0b8 test: declaration specifier expected near '_Static_assert' #39788 VIM PATCHES -------------------------------------------------------------------------------- - 964e797fdf22 9.2.0395: tests: Test_backupskip() may read from $HOME (#39417) - b01394039125 9.2.0435: [security]: backticks in 'path' may cause shell execution on completion - f9f259628808 9.2.0436: Buffer overflow when parsing overlong errorformat lines (#39578) - 0aa77cb78ca8 9.2.0443: GUI: cancelling save dialog overwrites or discards unnamed buffer (#39617) - 15a58bb02a9e 9.2.0444: Cannot set 'path' option via modeline - 03af1ec93196 9.2.0450: [security]: heap buffer overflow in spellfile.c read_compound() (#39660) - 2902ec05416b 9.2.0458: Crash with invalid shellredir/shellpipe value (#39691) - 647b6be48934 9.2.0461: Corrupted undofile causes use-after-free (#39707) - c8e0af85e0fe 9.2.0500: filetype: some html files wrongly recognized as htmlangular (#39880) - d9b8bac43541 9.2.0508: completion: cannot complete user cmd :K with 'ignorecase' (#39944) - 15a3318e134d 9.2.0513: [security]: memory safety issues in spellfile.c (#39960) - cc1982bd065d 9.2.0517: quickfix: can set quickfixtextfunc in restricted/sandbox mode (#39970) - dfd6cd477fc3 bfebd12: runtime(javacc): Check for existence of javaFuncDef syn group before clearing it (#39731) - a76bcbe3b826 partial:9.2.0315: missing bound-checks (#39334) | 25 天前 |
| feat: add release packaging script for HarmonyOS builds | 6 天前 |
| feat: switch to standard codegen path with luajit + nlua0.so | 6 天前 |
| fix(path): nvim_get_runtime_file fails on DOS 8.3 filename #40144 Problem: stdpath() may return a DOS 8.3 "shortened" filename, because Windows truncates some long usernames into 6ch~N names. Then features such as nvim_get_runtime_file fail to find the file. Analysis: When expanding an 8.3 filename path like C:/Users/ADMINI~1/AppData/*, we treat ~ as a special character and first check whether a directory named ADMINI~1 exists under Users. Since no such directory actually exists, the expansion fails. Solution: Treat ~ as a literal character in do_path_expand. Since the ~/ case is already handled in gen_expand_wildcards, any remaining ~ is just a literal character and will later be escaped to \~ by file_pat_to_reg_pat if needed. (cherry picked from commit 7bf2ab4b87e08807ca9fa1901ac915427428a928) | 25 天前 |
| build: align .clang-format rules with uncrustify config Difference can be seen e.g. in qf_add_entry(), where clang-format previously would want to place each parameter declaration on its own line (BinPackParameter: false), while uncrustify behaves if as BinPackParameters was set to true. Same goes for BinPackArguments. See https://clang.llvm.org/docs/ClangFormatStyleOptions.html#BinPackParameters and https://clang.llvm.org/docs/ClangFormatStyleOptions.html#binpackarguments | 3 年前 |
| build: noisy readability-implicit-bool-conversion warning #38282 Problem: clangd shows Implicit conversion 'int' -> 'bool' warnings. This is mostly noise in this codebase. Solution: - Disable the warning. - Get latest clang-tidy in CI. | 3 个月前 |
| build(clangd): docstrings are Doxygen Problem: clangd treats our docstrings as Plaintext. Solution: Update .clangd. | 3 个月前 |
| fix(editorconfig): use 4 spaces indentation for zig files | 5 个月前 |
| build(emmyrc.json): use StyLua formatter in .emmyrc.json #35196 | 10 个月前 |
| docs: .git-blame-ignore-revs #26397 | 2 年前 |
| fix(lua): not obvious which _meta/ files are generated #39035 Problem: - Not obvious which _meta/ are generated and which should be edited manually. - The require guard (error('Cannot require a meta file')) is not consistently present in all meta files. Solution: - Update headers. - Add require() guard to all meta files. - Rename generated meta files with .gen.lua. (cherry picked from commit 65b40e69acbcb28c0e7ef9228f731c444a788e93) | 2 个月前 |
| Merge tag 'v0.12.3' into harmonyos-port-v12 NVIM v0.12.3 # -----BEGIN PGP SIGNATURE----- # # iQJjBAABCABNFiEEnUqVAyVy/SGE/eMZPkITCINFwW0FAmop4VYbFIAAAAAABAAO # bWFudTIsMi41KzEuMTIsMCwzExxqdXN0aW5rekBnbWFpbC5jb20ACgkQPkITCINF # wW3KLQ/7BCV8W1ZDoqBNv2kZH6B6UXMtyGf7+GDqWoMMk5LyniI94jR9yGwpsY7g # rEXoEVvXAsrSh9PQtOwHdx0Y6IEI40TsQqcfW2lthECWxw8mrZowFcmBWbZFfcX8 # +4/o0B5ba9r56tjzp653kuZCcY4kNEfTjaVTTn5HFKHtOK3nQoYCHth3+5fARtwp # HspP+y9eAh1chv8d99rMrnCYJbAeXZbBew5lp+ljGNr4pHQICGZFZisbNnoJsnDf # fjiCZuPKQ2QhwzoQ/6Y5o6gRZl+HNrVsTSUCV0pWFLqnAR/hXDtiI00hvFWxrU2c # JZfiYDaUhENt7nHOUdkq4TBWkZPmwoU+yC92MVIz8QwcI7ANe6LcmqQN+g0NEb4X # ygcnSiuxCK3wNzclgh0hJPkmkM+5jYmQEWxxlX8NLkOBbZQphtEoMcveaeKlYGs4 # BBSHbMGbTRJ9fxquDNYHrrNrVgslmWbXzxPAsaE32lfrDDDEeLBnq5s716KtDSN4 # PRXByXgN19UxBSyNJg+dmUYafyrGWLKpoAYi0UsLcZUUK099d9K3Xynq6cZPqGUs # KUjCE73TfSCqzQW1fEm5ElMtFsmWwbrlVXsUMZXyAS5Z9GhabidJoeI/dBVNn1NS # y0RnWg6n74VLJKf7k7UbH/wmDn8caFTChkZFN/TByctFDUZHyKE= # =hyOA # -----END PGP SIGNATURE----- # Conflicts: # src/gen/gen_char_blob.lua # src/nvim/CMakeLists.txt # src/nvim/lua/executor.c | 6 天前 |
| fix(lua): not obvious which _meta/ files are generated #39035 Problem: - Not obvious which _meta/ are generated and which should be edited manually. - The require guard (error('Cannot require a meta file')) is not consistently present in all meta files. Solution: - Update headers. - Add require() guard to all meta files. - Rename generated meta files with .gen.lua. (cherry picked from commit 65b40e69acbcb28c0e7ef9228f731c444a788e93) | 2 个月前 |
| build: move shared.lua to _core/ | 6 个月前 |
| backport: fix(luarc.json): increase workspace.preloadFileSize (#39716) Problem: When using the default lua_ls config from nvim-lspconfig, the following info message gets printed: LSP[lua_ls] Too large file: src/nvim/eval.lua skipped. The currently set size limit is: 500 KB, and the file size is: 511.133 KB. Solution: Set workspace.preloadFileSize to 1000 KB instead of the default 500 KB. (cherry picked from commit 5d1910e1e0f7e5044c91a54cb8bf2c98a96cb5c1) Co-authored-by: Olivia Kinnear <git@superatomic.dev> | 1 个月前 |
| docs: fix .mailmap entry (#37259) | 5 个月前 |
| build: enable lintlua for scripts/ dir #26391 Problem: We don't enable stylua for many Lua scripts. Automating code-style is an important tool for reducing time spent on accidental (non-essential) complexity. Solution: - Enable lintlua for scripts/ directory. - Specify call_parentheses = "Input", we should allow kwargs-style function invocations. | 2 年前 |
| refactor(tests): lint decorations_spec, float_spec, multigrid_spec #33274 Problem: decorations_spec.lua, float_spec.lua, multigrid_spec.lua are not auto-formatted. Solution: Add a special formatlua2 cmake target, which invokes stylua with an alternative .stylua2.toml config. | 1 年前 |
| refactor(tests): lint decorations_spec, float_spec, multigrid_spec #33274 Problem: decorations_spec.lua, float_spec.lua, multigrid_spec.lua are not auto-formatted. Solution: Add a special formatlua2 cmake target, which invokes stylua with an alternative .stylua2.toml config. | 1 年前 |
| ci: label disclosed AI-assisted PRs Add a simple AGENTS.md rule for the AI-Assisted trailer in commit messages and a workflow that adds the AI assisted label when PR commits include that trailer. AI-Assisted: Codex | 3 个月前 |
| feat(lua)!: register_keystroke_callback => on_key Analogous to nodejs's on('data', …) interface, here on_key is the "add listener" interface. ref 3ccdbc570d85 #12536 BREAKING_CHANGE: vim.register_keystroke_callback() is now an error. | 4 年前 |
| docs: misc, rename "tabpage" | 1 个月前 |
| Merge tag 'v0.12.3' into harmonyos-port-v12 NVIM v0.12.3 # -----BEGIN PGP SIGNATURE----- # # iQJjBAABCABNFiEEnUqVAyVy/SGE/eMZPkITCINFwW0FAmop4VYbFIAAAAAABAAO # bWFudTIsMi41KzEuMTIsMCwzExxqdXN0aW5rekBnbWFpbC5jb20ACgkQPkITCINF # wW3KLQ/7BCV8W1ZDoqBNv2kZH6B6UXMtyGf7+GDqWoMMk5LyniI94jR9yGwpsY7g # rEXoEVvXAsrSh9PQtOwHdx0Y6IEI40TsQqcfW2lthECWxw8mrZowFcmBWbZFfcX8 # +4/o0B5ba9r56tjzp653kuZCcY4kNEfTjaVTTn5HFKHtOK3nQoYCHth3+5fARtwp # HspP+y9eAh1chv8d99rMrnCYJbAeXZbBew5lp+ljGNr4pHQICGZFZisbNnoJsnDf # fjiCZuPKQ2QhwzoQ/6Y5o6gRZl+HNrVsTSUCV0pWFLqnAR/hXDtiI00hvFWxrU2c # JZfiYDaUhENt7nHOUdkq4TBWkZPmwoU+yC92MVIz8QwcI7ANe6LcmqQN+g0NEb4X # ygcnSiuxCK3wNzclgh0hJPkmkM+5jYmQEWxxlX8NLkOBbZQphtEoMcveaeKlYGs4 # BBSHbMGbTRJ9fxquDNYHrrNrVgslmWbXzxPAsaE32lfrDDDEeLBnq5s716KtDSN4 # PRXByXgN19UxBSyNJg+dmUYafyrGWLKpoAYi0UsLcZUUK099d9K3Xynq6cZPqGUs # KUjCE73TfSCqzQW1fEm5ElMtFsmWwbrlVXsUMZXyAS5Z9GhabidJoeI/dBVNn1NS # y0RnWg6n74VLJKf7k7UbH/wmDn8caFTChkZFN/TByctFDUZHyKE= # =hyOA # -----END PGP SIGNATURE----- # Conflicts: # src/gen/gen_char_blob.lua # src/nvim/CMakeLists.txt # src/nvim/lua/executor.c | 6 天前 |
| docs: misc Co-authored-by: Axel <axelhjq@gmail.com> Co-authored-by: Colin Kennedy <colinvfx@gmail.com> Co-authored-by: Daiki Noda <sys9kdr@users.noreply.github.com> Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com> Co-authored-by: Jean-Jacq du Plessis <1030058+jj-du-plessis@users.noreply.github.com> Co-authored-by: Juan Giordana <juangiordana@gmail.com> Co-authored-by: Lincoln Wallace <locnnil0@gmail.com> Co-authored-by: Matti Hellström <hellstrom@scm.com> Co-authored-by: Steven Locorotondo <steven.locorotondo@justeattakeaway.com> Co-authored-by: Yochem van Rosmalen <git@yochem.nl> Co-authored-by: glepnir <glephunter@gmail.com> Co-authored-by: ifish <fishioon@live.com> | 1 年前 |
| ci: drop cirrus #39321 Problem: cirrus will shutdown soon, and we are running out of minutes anyway, which causes ci failures. Solution: Drop cirrus config. (cherry picked from commit 82198d0a6622c750b0b86b721998b00ccf3e2b23) | 2 个月前 |
| docs: update for JIT enabled (LuaJIT JIT works on HarmonyOS) | 6 天前 |
| feat(harmonyos): complete Neovim port to HarmonyOS PC This commit completes the Neovim port to HarmonyOS PC (HongMeng Kernel 1.11.0, aarch64). Key changes: 1. **CMake configuration**: Added HarmonyOS detection and compatibility setup 2. **Static linking scheme**: Bypass HarmonyOS dynamic loading restrictions 3. **TTY/SELinux fixes**: Modified libuv to skip fd copying, avoid permission issues 4. **MessagePack compatibility**: Implemented dynamic data size detection 5. **Lua environment**: Static Lua interpreter for code generation 6. **Build system**: Complete build scripts with logging 7. **Documentation**: Comprehensive README with CodeArts IDE signing instructions 8. **Manual signing**: Added binary-sign-tool commands for self-signing Build process: - Clone neovim-harmonyos and harmonyos-deps repositories - Build dependencies with build-deps-harmonyos.sh - Build Neovim with build-ohos-with-log.sh - Manual signing if needed: binary-sign-tool sign -inFile build/bin/nvim -outFile build/bin/nvim -selfSign 1 - Run with run-nvim.sh The port supports all core Neovim functionality with static linking to avoid HarmonyOS dynamic loading restrictions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> | 6 个月前 |
| backport docs: misc (#39206) docs: misc (cherry picked from commit 54398c587473c0f1d96b601a281477e184865401) | 2 个月前 |
| docs: api, messages, lsp, trust gen_vimdoc.lua: In prepare for the upcoming release, comment-out the "Experimental" warning for prerelease features. | 3 个月前 |
| docs: api, messages, lsp, trust gen_vimdoc.lua: In prepare for the upcoming release, comment-out the "Experimental" warning for prerelease features. | 3 个月前 |
| test: lint EXX error codes #8155 Problem: - Choosing a new EXX error code is tedious. - It's possible to accidentally use an EXX error code for different purposes. Solution: Add a lint check which requires EXX error codes to have a :help tag. This also avoids duplicates because make doc does :helptags ++t doc which fails if duplicates are found. (cherry picked from commit bc6d946cca422c770e792a62d7454387d79065e2) | 2 个月前 |
| docs: update for JIT enabled (LuaJIT JIT works on HarmonyOS) | 6 天前 |
| feat(harmonyos): complete Neovim port to HarmonyOS PC This commit completes the Neovim port to HarmonyOS PC (HongMeng Kernel 1.11.0, aarch64). Key changes: 1. **CMake configuration**: Added HarmonyOS detection and compatibility setup 2. **Static linking scheme**: Bypass HarmonyOS dynamic loading restrictions 3. **TTY/SELinux fixes**: Modified libuv to skip fd copying, avoid permission issues 4. **MessagePack compatibility**: Implemented dynamic data size detection 5. **Lua environment**: Static Lua interpreter for code generation 6. **Build system**: Complete build scripts with logging 7. **Documentation**: Comprehensive README with CodeArts IDE signing instructions 8. **Manual signing**: Added binary-sign-tool commands for self-signing Build process: - Clone neovim-harmonyos and harmonyos-deps repositories - Build dependencies with build-deps-harmonyos.sh - Build Neovim with build-ohos-with-log.sh - Manual signing if needed: binary-sign-tool sign -inFile build/bin/nvim -outFile build/bin/nvim -selfSign 1 - Run with run-nvim.sh The port supports all core Neovim functionality with static linking to avoid HarmonyOS dynamic loading restrictions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> | 6 个月前 |
| feat: auto-detect CodeArts/DevBox toolchain paths | 6 天前 |
| test: replace busted with local harness Replace the busted-based Lua test runner with a repo-local harness. The new harness runs spec files directly under nvim -ll, ships its own reporter and lightweight luassert shim, and keeps the helper/preload flow used by the functional and unit test suites. Keep the file boundary model shallow and busted-like by restoring _G, package.loaded, package.preload, arg, and the process environment between files, without carrying extra reset APIs or custom assertion machinery. Update the build and test entrypoints to use the new runner, add black-box coverage for the harness itself, and drop the bundled busted/luacheck dependency path. AI-assisted: Codex (cherry picked from commit 55f9c2136e52d8719495b6021ce7e8d64c5141fe) | 2 个月前 |
| test: replace busted with local harness Replace the busted-based Lua test runner with a repo-local harness. The new harness runs spec files directly under nvim -ll, ships its own reporter and lightweight luassert shim, and keeps the helper/preload flow used by the functional and unit test suites. Keep the file boundary model shallow and busted-like by restoring _G, package.loaded, package.preload, arg, and the process environment between files, without carrying extra reset APIs or custom assertion machinery. Update the build and test entrypoints to use the new runner, add black-box coverage for the harness itself, and drop the bundled busted/luacheck dependency path. AI-assisted: Codex (cherry picked from commit 55f9c2136e52d8719495b6021ce7e8d64c5141fe) | 2 个月前 |
| feat(harmonyos): complete Neovim port to HarmonyOS PC This commit completes the Neovim port to HarmonyOS PC (HongMeng Kernel 1.11.0, aarch64). Key changes: 1. **CMake configuration**: Added HarmonyOS detection and compatibility setup 2. **Static linking scheme**: Bypass HarmonyOS dynamic loading restrictions 3. **TTY/SELinux fixes**: Modified libuv to skip fd copying, avoid permission issues 4. **MessagePack compatibility**: Implemented dynamic data size detection 5. **Lua environment**: Static Lua interpreter for code generation 6. **Build system**: Complete build scripts with logging 7. **Documentation**: Comprehensive README with CodeArts IDE signing instructions 8. **Manual signing**: Added binary-sign-tool commands for self-signing Build process: - Clone neovim-harmonyos and harmonyos-deps repositories - Build dependencies with build-deps-harmonyos.sh - Build Neovim with build-ohos-with-log.sh - Manual signing if needed: binary-sign-tool sign -inFile build/bin/nvim -outFile build/bin/nvim -selfSign 1 - Run with run-nvim.sh The port supports all core Neovim functionality with static linking to avoid HarmonyOS dynamic loading restrictions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> | 6 个月前 |
| feat(harmonyos): complete Neovim port to HarmonyOS PC This commit completes the Neovim port to HarmonyOS PC (HongMeng Kernel 1.11.0, aarch64). Key changes: 1. **CMake configuration**: Added HarmonyOS detection and compatibility setup 2. **Static linking scheme**: Bypass HarmonyOS dynamic loading restrictions 3. **TTY/SELinux fixes**: Modified libuv to skip fd copying, avoid permission issues 4. **MessagePack compatibility**: Implemented dynamic data size detection 5. **Lua environment**: Static Lua interpreter for code generation 6. **Build system**: Complete build scripts with logging 7. **Documentation**: Comprehensive README with CodeArts IDE signing instructions 8. **Manual signing**: Added binary-sign-tool commands for self-signing Build process: - Clone neovim-harmonyos and harmonyos-deps repositories - Build dependencies with build-deps-harmonyos.sh - Build Neovim with build-ohos-with-log.sh - Manual signing if needed: binary-sign-tool sign -inFile build/bin/nvim -outFile build/bin/nvim -selfSign 1 - Run with run-nvim.sh The port supports all core Neovim functionality with static linking to avoid HarmonyOS dynamic loading restrictions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> | 6 个月前 |
| feat(harmonyos): complete Neovim port to HarmonyOS PC This commit completes the Neovim port to HarmonyOS PC (HongMeng Kernel 1.11.0, aarch64). Key changes: 1. **CMake configuration**: Added HarmonyOS detection and compatibility setup 2. **Static linking scheme**: Bypass HarmonyOS dynamic loading restrictions 3. **TTY/SELinux fixes**: Modified libuv to skip fd copying, avoid permission issues 4. **MessagePack compatibility**: Implemented dynamic data size detection 5. **Lua environment**: Static Lua interpreter for code generation 6. **Build system**: Complete build scripts with logging 7. **Documentation**: Comprehensive README with CodeArts IDE signing instructions 8. **Manual signing**: Added binary-sign-tool commands for self-signing Build process: - Clone neovim-harmonyos and harmonyos-deps repositories - Build dependencies with build-deps-harmonyos.sh - Build Neovim with build-ohos-with-log.sh - Manual signing if needed: binary-sign-tool sign -inFile build/bin/nvim -outFile build/bin/nvim -selfSign 1 - Run with run-nvim.sh The port supports all core Neovim functionality with static linking to avoid HarmonyOS dynamic loading restrictions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> | 6 个月前 |
| feat(harmonyos): complete Neovim port to HarmonyOS PC This commit completes the Neovim port to HarmonyOS PC (HongMeng Kernel 1.11.0, aarch64). Key changes: 1. **CMake configuration**: Added HarmonyOS detection and compatibility setup 2. **Static linking scheme**: Bypass HarmonyOS dynamic loading restrictions 3. **TTY/SELinux fixes**: Modified libuv to skip fd copying, avoid permission issues 4. **MessagePack compatibility**: Implemented dynamic data size detection 5. **Lua environment**: Static Lua interpreter for code generation 6. **Build system**: Complete build scripts with logging 7. **Documentation**: Comprehensive README with CodeArts IDE signing instructions 8. **Manual signing**: Added binary-sign-tool commands for self-signing Build process: - Clone neovim-harmonyos and harmonyos-deps repositories - Build dependencies with build-deps-harmonyos.sh - Build Neovim with build-ohos-with-log.sh - Manual signing if needed: binary-sign-tool sign -inFile build/bin/nvim -outFile build/bin/nvim -selfSign 1 - Run with run-nvim.sh The port supports all core Neovim functionality with static linking to avoid HarmonyOS dynamic loading restrictions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> | 6 个月前 |
| feat(harmonyos): complete Neovim port to HarmonyOS PC This commit completes the Neovim port to HarmonyOS PC (HongMeng Kernel 1.11.0, aarch64). Key changes: 1. **CMake configuration**: Added HarmonyOS detection and compatibility setup 2. **Static linking scheme**: Bypass HarmonyOS dynamic loading restrictions 3. **TTY/SELinux fixes**: Modified libuv to skip fd copying, avoid permission issues 4. **MessagePack compatibility**: Implemented dynamic data size detection 5. **Lua environment**: Static Lua interpreter for code generation 6. **Build system**: Complete build scripts with logging 7. **Documentation**: Comprehensive README with CodeArts IDE signing instructions 8. **Manual signing**: Added binary-sign-tool commands for self-signing Build process: - Clone neovim-harmonyos and harmonyos-deps repositories - Build dependencies with build-deps-harmonyos.sh - Build Neovim with build-ohos-with-log.sh - Manual signing if needed: binary-sign-tool sign -inFile build/bin/nvim -outFile build/bin/nvim -selfSign 1 - Run with run-nvim.sh The port supports all core Neovim functionality with static linking to avoid HarmonyOS dynamic loading restrictions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> | 6 个月前 |
| feat(harmonyos): complete Neovim port to HarmonyOS PC This commit completes the Neovim port to HarmonyOS PC (HongMeng Kernel 1.11.0, aarch64). Key changes: 1. **CMake configuration**: Added HarmonyOS detection and compatibility setup 2. **Static linking scheme**: Bypass HarmonyOS dynamic loading restrictions 3. **TTY/SELinux fixes**: Modified libuv to skip fd copying, avoid permission issues 4. **MessagePack compatibility**: Implemented dynamic data size detection 5. **Lua environment**: Static Lua interpreter for code generation 6. **Build system**: Complete build scripts with logging 7. **Documentation**: Comprehensive README with CodeArts IDE signing instructions 8. **Manual signing**: Added binary-sign-tool commands for self-signing Build process: - Clone neovim-harmonyos and harmonyos-deps repositories - Build dependencies with build-deps-harmonyos.sh - Build Neovim with build-ohos-with-log.sh - Manual signing if needed: binary-sign-tool sign -inFile build/bin/nvim -outFile build/bin/nvim -selfSign 1 - Run with run-nvim.sh The port supports all core Neovim functionality with static linking to avoid HarmonyOS dynamic loading restrictions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> | 6 个月前 |
| feat: auto-detect CodeArts/DevBox toolchain paths | 6 天前 |
| feat(harmonyos): complete Neovim port to HarmonyOS PC This commit completes the Neovim port to HarmonyOS PC (HongMeng Kernel 1.11.0, aarch64). Key changes: 1. **CMake configuration**: Added HarmonyOS detection and compatibility setup 2. **Static linking scheme**: Bypass HarmonyOS dynamic loading restrictions 3. **TTY/SELinux fixes**: Modified libuv to skip fd copying, avoid permission issues 4. **MessagePack compatibility**: Implemented dynamic data size detection 5. **Lua environment**: Static Lua interpreter for code generation 6. **Build system**: Complete build scripts with logging 7. **Documentation**: Comprehensive README with CodeArts IDE signing instructions 8. **Manual signing**: Added binary-sign-tool commands for self-signing Build process: - Clone neovim-harmonyos and harmonyos-deps repositories - Build dependencies with build-deps-harmonyos.sh - Build Neovim with build-ohos-with-log.sh - Manual signing if needed: binary-sign-tool sign -inFile build/bin/nvim -outFile build/bin/nvim -selfSign 1 - Run with run-nvim.sh The port supports all core Neovim functionality with static linking to avoid HarmonyOS dynamic loading restrictions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> | 6 个月前 |
| feat(harmonyos): complete Neovim port to HarmonyOS PC This commit completes the Neovim port to HarmonyOS PC (HongMeng Kernel 1.11.0, aarch64). Key changes: 1. **CMake configuration**: Added HarmonyOS detection and compatibility setup 2. **Static linking scheme**: Bypass HarmonyOS dynamic loading restrictions 3. **TTY/SELinux fixes**: Modified libuv to skip fd copying, avoid permission issues 4. **MessagePack compatibility**: Implemented dynamic data size detection 5. **Lua environment**: Static Lua interpreter for code generation 6. **Build system**: Complete build scripts with logging 7. **Documentation**: Comprehensive README with CodeArts IDE signing instructions 8. **Manual signing**: Added binary-sign-tool commands for self-signing Build process: - Clone neovim-harmonyos and harmonyos-deps repositories - Build dependencies with build-deps-harmonyos.sh - Build Neovim with build-ohos-with-log.sh - Manual signing if needed: binary-sign-tool sign -inFile build/bin/nvim -outFile build/bin/nvim -selfSign 1 - Run with run-nvim.sh The port supports all core Neovim functionality with static linking to avoid HarmonyOS dynamic loading restrictions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> | 6 个月前 |
| feat(harmonyos): optimize build script with dependency checking - Update build-ohos-with-log.sh to check dependency status and avoid rebuild - Add dependency validation for core libraries (liblua.a, libluajit.a, etc.) - Fix permission issues for built executables - Update run-nvim.sh with improvements 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> | 6 个月前 |
| feat(harmonyos): complete Neovim port to HarmonyOS PC This commit completes the Neovim port to HarmonyOS PC (HongMeng Kernel 1.11.0, aarch64). Key changes: 1. **CMake configuration**: Added HarmonyOS detection and compatibility setup 2. **Static linking scheme**: Bypass HarmonyOS dynamic loading restrictions 3. **TTY/SELinux fixes**: Modified libuv to skip fd copying, avoid permission issues 4. **MessagePack compatibility**: Implemented dynamic data size detection 5. **Lua environment**: Static Lua interpreter for code generation 6. **Build system**: Complete build scripts with logging 7. **Documentation**: Comprehensive README with CodeArts IDE signing instructions 8. **Manual signing**: Added binary-sign-tool commands for self-signing Build process: - Clone neovim-harmonyos and harmonyos-deps repositories - Build dependencies with build-deps-harmonyos.sh - Build Neovim with build-ohos-with-log.sh - Manual signing if needed: binary-sign-tool sign -inFile build/bin/nvim -outFile build/bin/nvim -selfSign 1 - Run with run-nvim.sh The port supports all core Neovim functionality with static linking to avoid HarmonyOS dynamic loading restrictions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> | 6 个月前 |