Commit Graph

24889 Commits

Author SHA1 Message Date
Lewis Russell
1df3f5ec6a
feat(treesitter): upstream foldexpr from nvim-treesitter 2023-02-23 17:05:20 +00:00
Christian Clason
8c339aa04b
vim-patch:9.0.1346: Starlark files are not recognized (#22380)
Problem:    Starlark files are not recognized.
Solution:   Add patterns for Starlark files. (Amaan Qureshi, closes vim/vim#12049)

ca06b30073

Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2023-02-23 17:52:33 +01:00
Lewis Russell
75e53341f3
perf(treesitter): smarter languagetree invalidation
Problem:
  Treesitter injections are slow because all injected trees are invalidated on every change.

Solution:
    Implement smarter invalidation to avoid reparsing injected regions.

    - In on_bytes, try and update self._regions as best we can. This PR just offsets any regions after the change.
    - Add valid flags for each region in self._regions.
    - Call on_bytes recursively for all children.
       - We still need to run the query every time for the top level tree. I don't know how to avoid this. However, if the new injection ranges don't change, then we re-use the old trees and avoid reparsing children.

This should result in roughly a 2-3x reduction in tree parsing when the comment injections are enabled.
2023-02-23 15:19:52 +00:00
Lewis Russell
8680715743
fix: resolve error from -Werror=maybe-uninitialized 2023-02-23 15:08:39 +00:00
Mathias Fußenegger
f140175564
refactor(lsp): remove workaround for missing bit module (#22373) 2023-02-23 13:35:46 +01:00
Christian Clason
0cd0fdf478
Merge pull request #22357 from clason/docs-ts
* Work around tree-sitter-vimdoc parsing errors introduced in a recent PR.
* Drop the tolerance of the test to 0 to make sure this doesn't happen again.
2023-02-23 13:02:15 +01:00
Christian Clason
6dfbeb0d99 docs: fix more treesitter parsing errors 2023-02-23 10:25:22 +01:00
Christian Clason
1c37553476 test(help): drop treesitter parse error to 0
All parser errors have been fixed; make sure we don't introduce new
ones.
2023-02-23 10:24:15 +01:00
Christian Clason
05de0f4fea docs(treesitter): fix parse errors 2023-02-23 10:24:15 +01:00
zeertzjq
524e1a0643
fix(highlight): avoid ORing underline flags (#22372)
When combining attributes use the one that takes priority.
For :highlight command use the last one specified.
For API use a hard-coded order same as the order in docs.
2023-02-23 16:15:04 +08:00
bfredl
d422fc8274
Merge pull request #21222 from bfredl/bitband
feat(lua): make sure require'bit' always works, even on PUC LUA 5.1
2023-02-22 22:38:21 +01:00
bfredl
799edca18a feat(lua): make sure require'bit' always works, even with PUC lua 5.1 2023-02-22 22:15:19 +01:00
Justin M. Keyes
09b6a68c37
Merge #21428 docs: naming conventions, guidelines 2023-02-22 10:40:01 -05:00
Justin M. Keyes
6752f1005d docs: naming conventions, guidelines
close #21063
2023-02-22 16:23:49 +01:00
Luuk van Baal
0b36145c69 docs: mention getmousepos() for click execute function label
close #18741
close #11312
2023-02-22 16:23:49 +01:00
Justin M. Keyes
b496605fea docs: vim_diff.txt 2023-02-22 16:23:49 +01:00
Gregory Anders
675826da63
refactor(treesitter): Add vim.treesitter.get_node() (#22360)
This function replaces both vim.treesitter.get_node_at_pos() and
vim.treesitter.get_node_at_cursor(). These two functions are similar
enough that they don't need separate interfaces. Even worse,
get_node_at_pos() returns a TSNode while get_node_at_cursor() returns a
string, so the two functions behave slightly differently.

vim.treesitter.get_node() combines these two into a more streamlined
interface. With no arguments, it returns the node under the cursor in
the current buffer. Optionally, it can accept a buffer number or a
position to get the node at a given position in a given buffer.
2023-02-22 08:01:08 -07:00
Christian Clason
2281669470
build(deps): bump LuaJIT to HEAD - 505e2c03d (#22362) 2023-02-22 14:44:11 +01:00
Christian Clason
d1b34b7458
vim-patch:9.0.1337: yuck files are not recognized (#22358)
Problem:    Yuck files are not recognized.
Solution:   Add a filetype pattern for yuck files. (Amaan Qureshi,
            closes vim/vim#12033)

cfce5cf542

Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2023-02-22 10:58:15 +01:00
dundargoc
649742821a
docs: remove the test badge from the README (#22350)
Tests are flaky, and a failure doesn't necessarily impart useful
information. Furthermore, we don't need to link to the tests as it's
just as easy to reach it from the Actions tab.
2023-02-21 22:21:35 +01:00
Lewis Russell
8714a4009c
feat(treesitter): add filetype -> lang API
Problem:

  vim.treesitter does not know how to map a specific filetype to a parser.

  This creates problems since in a few places (including in vim.treesitter itself), the filetype is incorrectly used in place of lang.

Solution:

  Add an API to enable this:

  - Add vim.treesitter.language.add() as a replacement for vim.treesitter.language.require_language().
    - Optional arguments are now passed via an opts table.
    - Also takes a filetype (or list of filetypes) so we can keep track of what filetypes are associated with which langs.
    - Deprecated vim.treesitter.language.require_language().
  - Add vim.treesitter.language.get_lang() which returns the associated lang for a given filetype.
  - Add vim.treesitter.language.register() to associate filetypes to a lang without loading the parser.
2023-02-21 17:09:18 +00:00
zeertzjq
344a1ee8e6
docs: fix typos (#22353) 2023-02-22 00:07:26 +08:00
zeertzjq
ee26b227e1
vim-patch:partial:938ae280c79b (#22356)
Update runtime files.

938ae280c7

Partially skip autocmd.txt: needs patch 8.2.5011.
Partially skip builtin.txt: needs patch 9.0.0411.
Partially skip eval.txt: needs patch 8.2.3783.
Cherry-pick :map-meta-keys from patch 9.0.1276.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-02-21 23:50:29 +08:00
dundargoc
d18f8d5c2d
ci: use multi-config generator on the multi-config test (#22352) 2023-02-21 14:01:49 +01:00
Lewis Russell
2d99830706
refactor(man): add type annotations 2023-02-21 12:19:09 +00:00
zeertzjq
fec1181ecd
test(legacy/prompt_buffer_spec): align script with oldtest more (#22354) 2023-02-21 17:43:53 +08:00
dundargoc
f0ee548137
ci(backport): bump zeebe-io/backport-action from 0 to 1 (#22348)
Notable changes are performance increases for fetching repositories and
simpler workflow file.
2023-02-21 07:43:17 +01:00
Jason Hansen
bdf6d8733e
fix(lsp): wrong format of bufnr and client order in error message (#22336) 2023-02-21 07:24:47 +01:00
zeertzjq
286777c333
refactor(tui/input.c): remove unused multithreading code (#22342) 2023-02-21 08:01:16 +08:00
Vedant
96b6b27f74
ci: add dependabot to auto-update github actions (#22341)
This will ensure we don't accidentally have outdated actions.
2023-02-20 22:24:27 +01:00
Vedant
3264cb294e
fix(ci/release/winget): bump action version 2023-02-20 21:23:08 +01:00
zeertzjq
3507474611
vim-patch:9.0.1332: crash when using buffer-local user command in cmdline window (#22346)
Problem:    Crash when using buffer-local user command in cmdline window.
            (Karl Yngve Lervåg)
Solution:   Use the right buffer to find the user command. (closes vim/vim#12030,
            closes vim/vim#12029)

b444ee761a
2023-02-20 23:55:42 +08:00
zeertzjq
93c627b90b
vim-patch:9.0.1331: illegal memory access when using :ball in Visual mode (#22343)
Problem:    Illegal memory access when using :ball in Visual mode.
Solution:   Stop Visual mode when using :ball. (Pavel Mayorov, closes vim/vim#11923)

e1121b1394

Co-authored-by: Pavel Mayorov <pmayorov@cloudlinux.com>
2023-02-20 23:02:05 +08:00
zeertzjq
f1816f9ee2
refactor(main.c): remove unreachable use_builtin_ui conditions (#22338)
When use_builtin_ui is true, Nvim will exit before line 385 is reached.
2023-02-20 15:13:55 +08:00
dundargoc
b62c0c8d9c
docs: fix typos (#21961)
Co-authored-by: Ben Morgan <cassava@iexu.de>
2023-02-20 15:12:59 +08:00
zeertzjq
8784f064f1
vim-patch:9.0.1329: completion of map includes simplified ones (#22335)
Problem:    Completion of map includes simplified ones.
Solution:   Do not complete simplified mappings. (closes vim/vim#12013)

997b8a015c
2023-02-20 08:24:49 +08:00
dundargoc
020d3e355e
build: remove unused dependency penlight (#22334) 2023-02-19 22:27:12 +01:00
dundargoc
5ffd3d035d
build: build all dependencies in parallel (#22329)
Previously, all targets were connected in one main target called
third-party in order to remove any potentially conflicting shared
library. We can make each dependency target independent of each other by
only removing shared libraries from luajit and msgpack in their own
targets, as only these has unwanted shared libraries.
2023-02-19 21:11:27 +01:00
dundargoc
bfe6b49447
build(MSVC): enable assertions on RelWithDebInfo build type (#22326) 2023-02-19 15:06:53 +01:00
zeertzjq
4028731900
fix(tui): properly check if stdin is a tty (#22321)
After #21831 `in_fd` is no longer set to stderr when starting TUI, so
check for `stdin_isatty` instead.

Fix #22259.
2023-02-19 20:56:15 +08:00
Ghjuvan Lacambre
c726585ce1
fix: windows assertion failure due to incorrect path length (#22324)
This commit fixes an assertion failure on windows debug builds that was
introduced in https://github.com/neovim/neovim/pull/22128 .
2023-02-19 20:25:29 +08:00
luukvbaal
cbd4480f97
vim-patch:9.0.1324: "gj" and "gk" do not move correctly over a closed fold (#22320)
Problem:    "gj" and "gk" do not move correctly over a closed fold.
Solution:   Use the same code as used for "j"/"k" to go to the next/previous
            line. (Luuk van Baal, closes vim/vim#12007)

441a7a9448
2023-02-19 08:33:02 +08:00
Christian Clason
2f64137974
vim-patch:9.0.1319: PRQL files are not recognized (#22319)
Problem:    PRQL files are not recognized.
Solution:   Add a filetype pattern for PRQL files. (Matthias Queitsch,
            closes vim/vim#12018)

9de960ace0

Co-authored-by: Matthias Queitsch <matthias.queitsch@mailbox.org>
2023-02-19 01:27:32 +01:00
Andreas Schneider
53841df58d
fix: Add missing void as function argument (#22317) 2023-02-18 21:35:27 +01:00
dundargoc
458299df79
fix: remove "Compiled by:" from :version/--version (#22316)
The :version output is already crowded as is, the last thing we need is
extraneous messages about who compiled it.
2023-02-18 20:10:00 +01:00
dundargoc
db849517c6
fix: remove "Features" section from --version/:version (#22315)
Neovim doesn not have any optional features.
2023-02-18 19:06:38 +01:00
dundargoc
9301abdf74
ci: enable CI_BUILD automatically if environment variable CI is true (#22312)
Having to specify CI_BUILD for every CI job requires boilerplate. More
importantly, it's easy to forget to enable CI_BUILD, as seen by
8a20f9f98a. It's simpler to remember to
turn CI_BUILD off when a job errors instead of remembering that every
new job should have CI_BUILD on.
2023-02-18 17:43:39 +01:00
dundargoc
6ed5a9ab8c
build: test multi-config generator (#22310)
Multi-config generators can be tricky so testing them would be good.
Also test GCC release and MinSizeRel build types as they're prone to
unusual warnings. Remove release testing from test.yml as this is a
sufficient replacement.
2023-02-18 16:54:19 +01:00
zeertzjq
e8540c31a9
docs(README): fix CI status badge (#22308)
Use test.yml and link to that workflow, as build.yml is mostly
only for checking CMake files.
2023-02-18 18:38:47 +08:00
dundargoc
fc8c77a69f
ci: split ci.yml into a test workflow and a build test workflow (#22302)
Having a workflow that only builds neovim without running all of the
tests is a cheap way to test the build still works without burning too
much CI time.
2023-02-18 10:47:22 +01:00