| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The haskell-language-server supports resolve only for a subset of code
actions. For many code actions trying to resolve the `edit` property
results in an error, but the unresolved action already contains a
command that can be executed without issue.
The protocol specification is unfortunately a bit vague about this,
and what the haskell-language-server does seems to be valid.
Example:
newtype Dummy = Dummy Int
instance Num Dummy where
Triggering code actions on "Num Dummy" and choosing "Add placeholders
for all missing methods" resulted in:
-32601: No plugin enabled for SMethod_CodeActionResolve, potentially available: explicit-fields, importLens, hlint, overloaded-record-dot
With this change it will insert the missing methods:
instance Num Dummy where
(+) = _
(-) = _
(*) = _
negate = _
abs = _
signum = _
fromInteger = _
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: cannot complete option values
Solution: Add completion functions for several options
Add cmdline tab-completion for setting string options
Add tab-completion for setting string options on the cmdline using
`:set=` (along with `:set+=` and `:set-=`).
The existing tab completion for setting options currently only works
when nothing is typed yet, and it only fills in with the existing value,
e.g. when the user does `:set diffopt=<Tab>` it will be completed to
`set diffopt=internal,filler,closeoff` and nothing else. This isn't too
useful as a user usually wants auto-complete to suggest all the possible
values, such as 'iblank', or 'algorithm:patience'.
For set= and set+=, this adds a new optional callback function for each
option that can be invoked when doing completion. This allows for each
option to have control over how completion works. For example, in
'diffopt', it will suggest the default enumeration, but if `algorithm:`
is selected, it will further suggest different algorithm types like
'meyers' and 'patience'. When using set=, the existing option value will
be filled in as the first choice to preserve the existing behavior. When
using set+= this won't happen as it doesn't make sense.
For flag list options (e.g. 'mouse' and 'guioptions'), completion will
take into account existing typed values (and in the case of set+=, the
existing option value) to make sure it doesn't suggest duplicates.
For set-=, there is a new `ExpandSettingSubtract` function which will
handle flag list and comma-separated options smartly, by only suggesting
values that currently exist in the option.
Note that Vim has some existing code that adds special handling for
'filetype', 'syntax', and misc dir options like 'backupdir'. This change
preserves them as they already work, instead of converting to the new
callback API for each option.
closes: vim/vim#13182
https://github.com/vim/vim/commit/900894b09a95398dfc75599e9f0aa2ea25723384
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
|
|\
| |
| | |
feat(ui): allow to get the highlight namespace. closes #24390
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: No support for writing extended attributes
Solution: Add extended attribute support for linux
It's been a long standing issue, that if you write a file with extended
attributes and backupcopy is set to no, the file will loose the extended
attributes.
So this patch adds support for retrieving the extended attributes and
copying it to the new file. It currently only works on linux, mainly
because I don't know the different APIs for other systems (BSD, MacOSX and
Solaris). On linux, this should be supported since Kernel 2.4 or
something, so this should be pretty safe to use now.
Enable the extended attribute support with normal builds.
I also added it explicitly to the :version output as well as make it
able to check using `:echo has("xattr")`, to have users easily check
that this is available.
In contrast to the similar support for SELINUX and SMACK support (which
also internally uses extended attributes), I have made this a FEAT_XATTR
define, instead of the similar HAVE_XATTR.
Add a test and change CI to include relevant packages so that CI can
test that extended attributes are correctly written.
closes: vim/vim#306
closes: vim/vim#13203
https://github.com/vim/vim/commit/e085dfda5d8dde064b0332464040959479696d1c
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
|\ \
| |/
|/| |
feat(float): support toggle show float window
|
| | |
|
| |
| |
| | |
Use `tic -x` instead of `tic` to include any unknown capabilities in a modern `terminfo.src` as user-defined ones, instead of dropping them. Modern ncurses behavior with `tic -x` will not change.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
runtime(doc): text-objects: document how escaped delimiters are handled
https://github.com/vim/vim/commit/02902b547bdb3ba480a52c90dce742201241f224
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Vim9: error codes spread out
Solution: group them together and reserve 100
more for future use
Reserve 100 error codes for future enhancements to the Vim9 class
support
closes: vim/vim#13207
https://github.com/vim/vim/commit/413f83990f15d5d59d27ab741670f527a7a3feb8
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: filename expansion using ** in bash may fail
Solution: Try to enable the globstar setting
Starting with bash 4.0 it supports extended globbing using the globstar
shell option. This makes matching recursively below a certain directory
using the ** pattern work as expected nowadays. However, we need to
explicitly enable this using the 'shopt -s globstar' bash command.
So let's check the bash environment variable $BASH_VERSINFO (which is
supported since bash 3.0 and conditionally enable the globstar option,
if the major version is at least 4. For older bashs, this at least
shouldn't cause errors (unless one is using really ancient bash 2.X or
something).
closes: vim/vim#13002
closes: vim/vim#13144
https://github.com/vim/vim/commit/9eb1ce531527a7177d16373b0f8689bbcd3d5f73
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
| |
| |
| |
| |
| | |
Recommend adding a space after i.e. `--- @see`.
The "space" variant is common for the vast majority of docstring formats
such as doxygen, javadoc and typescript.
|
| |
| |
| |
| |
| | |
runtime(doc): mention mouse scrolling in scrollbind-quickadj (vim/vim#13190)
https://github.com/vim/vim/commit/5277cfaf8afe847b7d4dcde6057fbecb001ab64e
|
| |
| |
| |
| |
| |
| |
| |
| | |
runtime(swayconfig): Update syntax file (vim/vim#13192)
https://github.com/vim/vim/commit/54f70cf0780a797efaf0ff9fd4190215a3ff0eb7
Co-authored-by: Josef Litoš <54900518+JosefLitos@users.noreply.github.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
runtime(i3config): update i3config syntax (vim/vim#13191)
https://github.com/vim/vim/commit/02774f99cebcb890d3861febc1d03e75c02cc92d
Co-authored-by: Josef Litoš <54900518+JosefLitos@users.noreply.github.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
runtime(rmd) Update ftplugin and syntax files (vim/vim#13193)
ftplugin/rmd.vim:
- Set 'commentstring' dynamically according to code region.
syntax/rmd.vim:
- Include syntax highlighting of fenced languages dynamically.
- Add conceal char for line break.
https://github.com/vim/vim/commit/34745942390383ec626b168e9837d284622c7bbe
Co-authored-by: Jakson Alves de Aquino <jalvesaq@gmail.com>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
NVIM_APPNAME does not allow path separators in the name, so relative
paths can't be used:
NVIM_APPNAME="neovim-configs/first-config" nvim
NVIM_APPNAME="neovim-configs/second-config" nvim
Solution:
Let NVIM_APPNAME be a relative path. Absolute paths are not supported.
fix #23056
fix #24966
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem:
Some steps in :Tutor don't work on Windows.
Solution:
Add support for `{unix:...,win:...}` format and transform the Tutor contents
depending on the platform.
Fix https://github.com/neovim/neovim/issues/24166
|
|\
| |
| | |
fix(highlight): add force in nvim_set_hl
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
runtime(sh): only invoke bash help in ftplugin if it has been detected to be bash (vim/vim#13171)
https://github.com/vim/vim/commit/54e1f56cf2a5f74ee11baba170afff867e5d9f99
Co-authored-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: No commentstring is set for D buffers after removing the
default C-style commentstring
Same solution than neovim#23039
Co-authored-by: Axel Ricard <axel.ricard@allegrodvt.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
A lot of updated places in the docs were already incorrect since long
since they did not reflect the default behaviour.
"[dos format]" could've been argued being better for discoverability
but that ship has already sailed as it is no longer displayed by default.
|
|\ \
| | |
| | | |
docs: remove "f" from default 'shortmess' value
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The "f" flag was removed in f7da4722570617bd8927e7aa533fa9a608c45bba.
The value of the "f" flag is no longer listed in the 'shortmess'
description and it cannot be disabled, so having it in the default value
is pointless and confusing.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
runtime(doc): grammar fixes in doc (vim/vim#13164)
https://github.com/vim/vim/commit/960822a11f70d2ed7e78b42fb6b75a9f8839ec9f
Co-authored-by: Dominique Pellé <dominique.pelle@gmail.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
runtime(doc): Add a missing '<' to the help of strutf16len() (vim/vim#13168)
https://github.com/vim/vim/commit/790f9a890ceeb9539776265cba0f026fb2c96790
Co-authored-by: a5ob7r <12132068+a5ob7r@users.noreply.github.com>
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem:
Users using `vim.lsp.start` directly (instead of nvim-lspconfig) need
more visibility for troubleshooting. For example, troubleshooting
unnecesary servers or servers that aren't attaching to expected buffers.
Solution:
Mention attached buffers in the `:checkhealth lsp` report.
Example:
vim.lsp: Active Clients ~
- clangd (id=1, root_dir=~/dev/neovim, attached_to=[7])
- lua_ls (id=2, root_dir=~/dev/neovim, attached_to=[10])
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
Problem:
`:checkhealth nvim` warns about missing vimrc if `init.lua` exists but
`init.vim` does not.
Solution:
Check for any of: init.vim, init.lua, $MYVIMRC.
Fix #25291
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Oldtests clean up after themselves, and the options that need operators
to align with Vim all deny duplicates, so there is no need to set them
to default.
Also make the variable name that test_listchars.vim uses to align with
Vim more obvious.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Not everything needs to be crazy overconfigurable.
Also fixes a warning in latest clang which didn't approve of
the funky math switch statement in append_arg_number
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
PROBLEM: The builtin python3 provider cannot auto-detect python3.12
when g:python3_host_prog is not set. As a result, when python3 on $PATH
is currently python 3.12, neovim will fail to load python3 provider
and result in `has("python3") == 0`, e.g.,
"Failed to load python3 host. You can try to see what happened by ..."
ROOT CAUSE: the `system()` call from `provider#pythonx#DetectByModule`
does not ignore python warnings, and `pkgutil.get_loader` will print
a warning message in the very first line:
```
<string>:1: DeprecationWarning: 'pkgutil.get_loader' is deprecated and
slated for removal in Python 3.14; use importlib.util.find_spec() instead
```
SOLUTION:
- Use `importlib.util.find_spec` instead (python >= 3.4)
- Use `-W ignore` option to prevent any potential warning messages
|
|\ \
| | |
| | | |
docs: add more context to vim.schedule_wrap
|
| | |
| | |
| | |
| | |
| | | |
Per https://github.com/neovim/neovim/pull/25286#discussion_r1332861721
and https://github.com/neovim/neovim/pull/25286#discussion_r1334318352
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Remove the usage of the term "defer" to avoid confusion with
`vim.defer_fn`, which also calls `vim.schedule_wrap` internally.
- Explicitly state that `vim.schedule_wrap` returns a function in the
text.
- Mention that arguments are passed along.
- Include a usage example.
- Rename param to `fn`.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is incorrect in the following scenario:
1. The language tree is Lua > Vim > Lua.
2. An edit simultaneously wipes out the `_regions` of all nodes, while
taking the Vim injection off-screen.
3. The Vim injection is not re-parsed, so the child Lua `_regions` is
still `nil`.
4. The child Lua is assumed, incorrectly, to occupy the whole document.
5. This causes the injections to be parsed again, resulting in Lua > Vim
> Lua > Vim.
6. Now, by the same process, Vim ends up with its range assumed over the
whole document. Now the parse is broken and results in broken
highlighting and poor performance.
It should be fine to instead treat an unparsed node as occupying
nothing (i.e. effectively non-existent). Since, either:
- The parent was just parsed, hence defining `_regions`
- The parent was not just parsed, in which case this node doesn't need
to be parsed either.
Also, the name `has_regions` is confusing; it seems to simply
mean the opposite of "root" or "full_document". However, this PR does
not touch it.
|