Commit Graph

24840 Commits

Author SHA1 Message Date
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
Eduard Baturin
f43fa301c1
fix(lsp): check if the buffer is a directory before w! it (#22289) 2023-02-18 07:43:59 +01:00
zeertzjq
44da6a56ba
Merge pull request #22304 from zeertzjq/test-fix
Fix some mistakes and warnings in tests
2023-02-18 11:07:31 +08:00
zeertzjq
9381d08e29 test(tui_spec): use RPC request to setup autocommands
This avoids changing cmdline and fixes a warning.
2023-02-18 10:44:35 +08:00
zeertzjq
9b9f8dfcc4 test: make {MATCH:} behave less unexpectedly in screen:expect()
Include the rest of the line and allow multiple {MATCH:} patterns.
2023-02-18 10:44:35 +08:00
zeertzjq
bb369a14f3
Merge pull request #22303 from zeertzjq/vim-9.0.1315
vim-patch:9.0.1315: escaping for completion of map command not properly tested
2023-02-18 07:29:41 +08:00
dundargoc
fbb27a101f
ci: remove former dependencies that are no longer needed (#22301)
libtool, autoconf, automake and perl are no longer dependencies of
neovim and doesn't need to be installed in CI anymore. The dependencies
and the commit that removed them as dependencies are the following:

libtool: b05100a9ea
perl: 20a932cb72
autoconf+automake: e23c5fda0a
2023-02-18 00:09:51 +01:00
zeertzjq
afe34d92a7 vim-patch:9.0.1315: escaping for completion of map command not properly tested
Problem:    Escaping for completion of map command not properly tested.
Solution:   Add a few test cases. (closes vim/vim#12009)

c3a26c6bff
2023-02-18 07:05:48 +08:00
zeertzjq
75dab3cf07 fix(mappings): make "<" escaping in completion match Vim 2023-02-18 07:05:48 +08:00
Christian Clason
f905ab0450
build(deps): bump tree-sitter to HEAD - c51896d32 (#22296) 2023-02-17 12:53:09 +01:00
zeertzjq
371a74e4e1
fix(tui): only forward stdin_fd on first attach (#22293) 2023-02-17 11:19:40 +08:00
zeertzjq
d079c8cc5d
ci: change functionaltest timeout to 20 minutes (#22294)
15 minutes is too short for TSAN.
2023-02-17 11:06:56 +08:00
zeertzjq
477bbb5f5f
Merge pull request #22291 from zeertzjq/vim-8.2.0148
vim-patch:8.2.0148
2023-02-17 09:35:34 +08:00
zeertzjq
f6a6db3e24 vim-patch:8.2.0148: mapping related function in wrong source file
Problem:    Mapping related function in wrong source file.
Solution:   Move the function.  Add a few more test cases. (Yegappan
            Lakshmanan, closes vim/vim#5528)

7f51bbe0d1

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-02-17 08:47:44 +08:00
zeertzjq
df666521ac fix(mappings): fix check for cpo-B inverted in completion 2023-02-17 08:47:44 +08:00
zeertzjq
dea311b33d test(old): run some part of 'cpoptions' tests 2023-02-17 08:34:19 +08:00
zeertzjq
0326ef2f41
vim-patch:9.0.1314: :messages behavior depends on 'fileformat' of current buffer (#22286)
Problem:    :messages behavior depends on 'fileformat' of current buffer.
Solution:   Pass the buffer pointer to where it is used. (Mirko Ceroni,
            closes vim/vim#11995)

1d87e11a1e

Co-authored-by: cero1988 <mirkoceroni@mirkoceroni.it>
2023-02-17 07:15:24 +08:00
ii14
6dfabd0145
build: use libuv config file (#22209)
Libuv's recent changes in their pc file breaks cmake; they are using
-l:libuv.a for the linker, and it seems cmake can't resolve that.

Prefer using their cmake config file instead instead, and use the find
module as a fall-back in case it fails.

Closes https://github.com/neovim/neovim/issues/22271.
2023-02-16 22:09:05 +01:00
Gregory Anders
bb377afd32
build: use custom command to create single versiondef (#22290)
When using a multi config generator, CMake generates an output file for
each configuration when using file(GENERATE). When the contents of the
file for each configuration are different, CMake fails. Instead, create
separate files for each configuration and add a build time step to copy
the configuration specific file to the generic path "auto/versiondef.h"
which is included at build time.
2023-02-16 21:52:41 +01:00
Gregory Anders
ced0cd12d0
build: only use HOSTNAME_PRG if HOSTNAME is undefined (#22288)
Allow specifying the HOSTNAME variable by defining it with -D when
invoking CMake, instead of overriding it with the output of
HOSTNAME_RPG.
2023-02-16 12:36:55 -07:00
Kiyoon Kim
5688a9fb34
fix: lsp github issue template example (#22285) 2023-02-16 19:54:52 +01:00
Lewis Russell
b5922bc6e6
refactor(drawline.c): leadcol/trailcol 2023-02-16 15:47:50 +00:00
Justin M. Keyes
09b3432eaf
fix(api): allow empty Lua table for nested dicts #22268
Problem:
The Lua-API bridge allows Dict params to be empty Lua (list) tables at
the function-signature level. But not for _nested_ Dicts, because they
are not modeled:
fae7540732/src/nvim/api/keysets.lua (L184)
Some API functions like nvim_cmd check for kObjectTypeDictionary and
don't handle the case of empty Lua tables (treated as "Array").

Solution:
Introduce VALIDATE_T_DICT and use it in places where
kObjectTypeDictionary was being checked directly.

fixes #21005
2023-02-16 07:07:18 -08:00
Jonas Strittmatter
bcae4af374
docs: remove mentions of 'balloonexpr' #22049
'balloonexpr' option was removed in Nvim.
2023-02-16 06:54:25 -08:00
Justin M. Keyes
5420bf9998
fix(lintcommit): capitalized description #22282
Problem:
The "Capitalized" check should only check the first word of a description.

Solution:
Specify "^".
2023-02-16 06:43:05 -08:00
Ghjuvan Lacambre
d34c64e342
feat: $NVIM_APPNAME #22128
This commit implements the ability to control all of the XDG paths
Neovim should use. This is done by setting an environment variable named
NVIM_APPNAME. For example, setting $NVIM_APPNAME makes Neovim look for
its configuration directory in $XDG_CONFIG_HOME/$NVIM_APPNAME instead of
$XDG_CONFIG_HOME/nvim.

If NVIM_APPNAME is not set or is an empty string, "nvim" will be used as
default.

The usecase for this feature is to enable an easy way to switch from
configuration to configuration. One might argue that the various $XDG
environment variables can already be used for this usecase. However,
setting $XDG environment variables also affects tools spawned by Neovim.
For example, while setting $XDG_CONFIG_HOME will enable Neovim to use a
different configuration directory, it will also prevent Git from finding
its "default" configuration.

Closes https://github.com/neovim/neovim/issues/21691
2023-02-16 04:15:02 -08:00
zeertzjq
631775c05d
Merge pull request #22277 from zeertzjq/vim-8.2.0114
vim-patch:8.2.{0114,0154}: info about sourced scripts is scattered
2023-02-16 12:40:46 +08:00
zeertzjq
0cbbe27e93 vim-patch:8.2.0154: reallocating the list of scripts is inefficient
Problem:    Reallocating the list of scripts is inefficient.
Solution:   Instead of using a growarray of scriptitem_T, store pointers and
            allocate each scriptitem_T separately.  Also avoids that the
            growarray pointers change when sourcing a new script.

21b9e9773d

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-02-16 11:50:28 +08:00
zeertzjq
e619fb1660 vim-patch:8.2.0114: info about sourced scripts is scattered
Problem:    Info about sourced scripts is scattered.
Solution:   Use scriptitem_T for info about a script, including s: variables.
            Drop ga_scripts.

7ebcba61b2

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-02-16 11:50:28 +08:00
zeertzjq
5dc4eaf386
Merge pull request #22275 from zeertzjq/vim-9.0.1309
vim-patch:9.0.{1309,1310,1312}: scrolling two lines with even line count and 'scrolloff'
2023-02-16 08:37:42 +08:00
zeertzjq
0bb3a373d3 vim-patch:9.0.1312: Cursor position wrong when splitting window in insert mode
Problem:    Cursor position wrong when splitting window in insert mode.
Solution:   Pass the actual mode to win_fix_cursor(). (Luuk van Baal,
            closes vim/vim#11999,

bc3dc298b3

Co-authored-by: Luuk van Baal <luukvbaal@gmail.com>
2023-02-16 08:09:41 +08:00
zeertzjq
a2dd7fa97b vim-patch:9.0.1310: 'splitkeep' test has failures
Problem:    'splitkeep' test has failures.
Solution:   Adjust expected cursor line position.

fdbd14e892

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-02-16 08:09:41 +08:00
zeertzjq
968cd1ed93 vim-patch:9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Problem:    Scrolling two lines with even line count and 'scrolloff' set.
Solution:   Adjust how the topline is computed. (closes vim/vim#10545)

1d6539cf36

Cherry-pick test_scroll_opt.vim changes from patch 8.2.1432.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-02-16 08:09:41 +08:00
dundargoc
f1c5887377
ci: add GCC Release testing (#22274)
ci: add GCC release testing

We currently have no release testing, so it's good to check for any
unwanted behavior on release builds as well. Prefer GCC over clang, as
GCC release builds seem to create more warnings on release compared to
debug.
2023-02-16 00:15:09 +01:00
blt__
da3cb6ebe4
dist: use valid application id in nvim.appdata.xml #22046
According to [AppStream spec](https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-id-generic),
the <id> element should contain a reverse-DNS scheme:

    {tld}.{vendor}.{product}

Since the flathub requires that, the flatpak build replaces `<id>nvim</id>` with
`<id>io.neovim.nvim</id>`. That results in ID mismatch between flatpak version
and version from distribution's repositories. Because of that, software stores
are displaying two different neovims, instead of one neovim with options to
download it either from flatpak or from distribution's repos. We can use the
`<provides><id>nvim</id></provides>`, for everyone who was expecting the id to
be `nvim`.
2023-02-15 15:11:49 -08:00
Lewis Russell
f006313e95
Merge pull request #22056 from lewis6991/refactor/fileio_more
refactor `fileio.c`
2023-02-15 16:45:20 +00:00
Enan Ajmain
ec782211f2
fix(tui): set taskbar, icon in Windows #22270
Problem: After TUI refactor commit, code for setting Windows taskbar
icon wasn't being executed because of a backdated conditional.

Solution: Update the conditional to take TUI refactor into account.

Ref: https://github.com/neovim/neovim/pull/20634#discussion_r1088993820
2023-02-15 07:39:23 -08:00
Lewis Russell
a289e82142
fix(treesitter): make params optional 2023-02-15 12:26:07 +00:00
Christian Clason
2e450efb95
feat(treesitter)!: remove g:ts_highlight_lua (#22257)
This variable was only meant for easy testing during the development
cycle for treesitter highlighting while Lua was the only parser useable
for daily driving. Now that we have a good vimdoc parser, this approach
simply doesn't scale and should be removed sooner rather than later.

Instead of setting this variable, people for now should add the autocommand
directly to their config:
```lua
vim.api.nvim_create_autocmd('FileType', {
  pattern = 'lua', -- or { 'lua', 'help' }
  callback = function() vim.treesitter.start() end,
})
```
(or put `vim.treesitter.start()` in an `ftplugin`).
2023-02-15 09:55:23 +01:00
zeertzjq
ae7653b74c
fix(win_update): don't use unintialized memory in edge case (#22266)
This fixes two clang warnings.

Using an unintialized "cursorline_fi" without assigning to it is not
something that should normally happen, and in case it happens it will
likely cause another redraw, but still don't use unintialized memory.
2023-02-15 16:53:53 +08:00
dundargoc
8307ed3a19
revert: "build: remove ENABLE_COMPILER_SUGGESTIONS option" (#22265)
This reverts commit 1d6bb0892b.

See: https://github.com/neovim/neovim/pull/22249#issuecomment-1430548550
2023-02-15 08:51:40 +01:00
Justin M. Keyes
1539f71363
Merge #22214 move init_default_autocmds to lua 2023-02-14 19:13:12 -05:00
zeertzjq
05faa8f30a
test: make expect_unchanged() less confusing (#22255)
Problem:
The sleep before collecting the initial screen state is confusing and
may lead to unexpected success if it comes after a blocking RPC call.

Solution:
Remove that sleep and add an "intermediate" argument.
2023-02-15 07:26:55 +08:00
Justin M. Keyes
556f8646c0
refactor(api): consistent VALIDATE messages #22262
Problem:
Validation messages are not consistently formatted.
- Parameter names sometimes are NOT quoted.
- Descriptive names (non-parameters) sometimes ARE quoted.

Solution:
Always quote the `name` value passed to a VALIDATE macro _unless_ the
value has whitespace.
2023-02-14 11:19:28 -08:00
Enan Ajmain
e03ecb7d31
fix: uv_tty_set_mode failed in Windows #22264
Problem:  uv_tty_set_mode on stdout in Windows exits with error.
Cause:    Windows cannot set the properties of the output of a tty.
Solution: Remove call to uv_tty_set_mode.

Ref: #21445
Ref: 88634c1405 (r100598822)
2023-02-14 11:15:28 -08:00
Enan Ajmain
b4a92309f8
ci: print DLL copy messages only in CI environment (#22260)
In Windows, library DLL's are copied in the building process, and a message for each copy is printed. This is useful to have in the log of CI, but annoying to see when you're building and rebuilding nvim constantly. Work around this issue by only enabling the messages on CI.
2023-02-14 18:58:38 +01:00
bfredl
9a9a4d38a8
Merge pull request #11756 from bfredl/crashfix
custom statusline crash containing unprintable unicode
2023-02-14 18:51:56 +01:00
Björn Linse
39f8aaeb81 fix(status): handle unprintable chars in the statusline 2023-02-14 15:56:14 +01:00
Lewis Russell
264fb6945b
Merge pull request #22113 from luukvbaal/nrwidth
fix(column): no longer reset nrwidth_line_count for 'statuscolumn'
2023-02-14 14:37:01 +00:00
Lewis Russell
00c0a52f94
Merge pull request #22108 from luukvbaal/statuscolumn
perf(column): only build fold/sign column when present in 'statuscolumn'
2023-02-14 14:36:12 +00:00