| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| |
| | |
This reverts commit 1d6bb0892b58e5a4183e74c0fbd2dc20204e33a4.
See: https://github.com/neovim/neovim/pull/22249#issuecomment-1430548550
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The original motivation for this change came from developping
https://github.com/neovim/neovim/pull/22159, which will require adding
more autocommand creation to Neovim's startup sequence.
This change requires lightly editing a test that expected no autocommand
to have been created from lua.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In https://github.com/neovim/neovim/pull/22214, init_default_autocmds
has been turned into a lua function call to nvim_create_augroup and
nvim_create_autocmd.
This introduced a strange regression: a test in vim_spec.lua started
failing with its last_set_chan value switching from 0 to
-9223372036854775808.
It turns out that -9223372036854775808 is the value of LUA_INTERNAL_CALL
and would be inherited as last_set_chan by options set from the command
line due to the WITH_SCRIPT_CONTEXT macro not restoring the channel id
(WITH_SCRIPT_CONTEXT is used by nvim_create_augroup).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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: https://github.com/libuv/libuv/commit/88634c1405097c19582e870d278dd0e29dc55455#r100598822
|
| | |
| | |
| | | |
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.
|
|\ \ \
| | | |
| | | | |
custom statusline crash containing unprintable unicode
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
fix(column): no longer reset nrwidth_line_count for 'statuscolumn'
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Problem: `build_statuscol_str()` still has arguments that were
necessary for building a status column string in
`number_width()`, which was abandoned in #22094.
Solution: Remove unused arguments.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Problem: We still explicitly reset `nrwidth_line_count` when changing
`'number'` or `'relativenumber'` but this is no longer
needed since the introduction of a `statuscol_line_count`.
Solution: Remove reset of `nrwidth_line_count`. Resolve
https://github.com/neovim/neovim/pull/22094#issuecomment-1416168926.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
perf(column): only build fold/sign column when present in 'statuscolumn'
|
| | | | | | |
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Problem: The fold and sign column is built and stored regardless of
whether the corresponding item is present in 'statuscolumn'.
Solution: Since the 'statuscolumn' parses itself, we can defer
building the columns until the corresponding item is
actually encountered.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- VALIDATE() takes a format string
- deduplicate check_string_array
- VALIDATE_RANGE
- validate UI args
|
| | | | | |
|
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem:
- API validation involves too much boilerplate.
- API validation errors are not consistently worded.
Solution:
Introduce some macros. Currently these are clumsy, but they at least
help with consistency and avoid some nesting.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: The cursorline highlight logic checks for `w_cursor.lnum`
which may be different from the line number passed to
`win_line()` even when the cursor is actually on that line.
Solution: Update cursor line highlight logic to check for the line
number of the start of a closed fold if necessary.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
errors (#22252)
Problem: Setting 'formatoptions' with :let doesn't check for errors.
Solution: Pass "errbuf" to set_string_option(). (Yegappan Lakshmanan,
closes vim/vim#11974, closes vim/vim#11972)
https://github.com/vim/vim/commit/32ff96ef018eb1a5bea0953648b4892a6ee71658
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
|
|\ \ \ \
| | | | |
| | | | | |
fix(tui): exit on input eof
|
| | | | | |
|
|/ / / / |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If nothing matched in match_from_hashbang, also check the file extension table.
For a hashbang like '#!/bin/env foo', this will set the filetype to 'fooscript'
assuming the filetype for the 'foo' extension is 'fooscript' in the extension
table.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We need higher level and more meaningful cmake options. Having a cmake
option for only controlling compiler flags is probably not worth it as
the same can be achieved with:
cmake -B build -D CMAKE_C_FLAGS=<compiler option>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Detect if on CI by checking that the CI environment variable is set to "true".
This is a common pattern among CI providers, including github actions and
cirrus.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Bash has better error handling than cmake, and seem overall slightly
more suited to scripting than cmake.
|
|\ \ \ \
| | | | |
| | | | | |
feat(treesitter): playground improvements
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This allows vim.treesitter.show_tree() to work on buffers where the
filetype does not match the parser language name e.g, bash/sh.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Render node ranges as virtual text
- Set filettype=query. The virtual text is to avoid parsing errors.
- Make sure highlights text is always in view.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
fix(ui): make sure screen is valid after resizing
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Neither ui/screen.lua nor Neovim Qt keep cursor position after resizing.
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Problem:
When not inside an Ex command, screen_resize() calls update_screen(),
which calls screenclear() and set the screen as valid. However, when
inside an Ex command, redrawing is postponed so update_screen() screen
doesn't do anything, and the screen is still invalid after the resize,
causing ui_comp_raw_line() to be no-op until update_screen() is called
on the main loop.
Solution:
Restore the call to screenclear() inside screen_resize() so that the
screen is invalid after screen_resize(). Since screenclear() changes
redraw type from UPD_CLEAR to UPD_NOT_VALID, it is called at most once
for each resize, so this shouldn't change how much code is run in the
common (not inside an Ex command) case.
|
| | | | |
| | | | |
| | | | | |
It's easier if the os-specific installations are done by the script itself
|
| | | | |
| | | | |
| | | | | |
refactor: reduce scope of locals as per the style guide
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Scripts that define the build itself shouldn't be external as they lead
to hard to find bugs.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Instead use the cmake option, which should act as the definitive source
to determine whether we use CI or not.
|
| | | | |
| | | | |
| | | | |
| | | | | |
Having as few indirections as possible makes it easier to understand the
code.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Having CI scripts that is separate from the build system causes
tremendous amounts of problems, headaches and bugs. Testing the validity
of the scripts locally become near impossible as time goes on as they're
only vetted if it works on whatever CI provider we happened to have at
the time, with their own quirks and behavior.
The extra indirection between "cmake <-> general CI scripts <-> GHA" is
also a frequent source of problems, as the orchestration needs to be
done with environment variables, cmake flags and github actions matrix
strategy. This combination has turned out to be exceptionally fragile.
Examples:
https://github.com/neovim/neovim/commit/15394b6855c3b17be06bf2bfbac7797d9c3ebf1d
https://github.com/neovim/neovim/commit/13aa23b62af4df3e7f10687b76fe8c04efa2a598
https://github.com/neovim/neovim/pull/22072#discussion_r1094390713
A lot of the code was inlined to .github/workflows/ci.yml without
further modifications. While this in itself doesn't integrate with our
build system any more than the current situation, it does
1. remove a level of indirection, and more importantly
2. allow us to slowly start integrating the CI into our build system now
that all the relevant code is in one place.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* ci: show all logs at the end of a run
The current CI won't show the logs on error due to early exit. This will
at least show the logs, although for all tests at once.
|
| | | | |
| | | | |
| | | | | |
Co-authored-by: Gregory Anders <greg@gpanders.com>
|
| | | | |
| | | | |
| | | | | |
There shouldn't be any core dumps before we have started testing.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Problem: The option initialization function is too long.
Solution: Move code to separate functions. (Yegappan Lakshmanan,
closes vim/vim#11966)
https://github.com/vim/vim/commit/6c41bedeed2a1f98fb9c55ff85634138782ad92a
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Abstracting the build commands to a separate script makes it more
difficult to reason about it and more error-prone.
|
| | | | |
| | | | |
| | | | |
| | | | | |
As the trigger type is no longer pull_request_target there is no longer
any risk of using the lintcommit script directly from the user PR.
|