aboutsummaryrefslogtreecommitdiff
path: root/runtime/doc
Commit message (Collapse)AuthorAge
...
| * refactor(lsp): make is_pull in lsp.diagnostic.get_namespace optional (#25156)Mathias Fußenegger2023-10-14
| | | | | | | | | | | | | | | | | | Follw up to https://github.com/neovim/neovim/commit/63b3408551561127f7845470eb51404bcd6f547b `is_pull` should be optional, otherwise it is an API change that introduces warnings in consumers. Also fixes the type annotation of `_client_pull_namespaces` where the key is a string.
| * docs: clarify about error in shada (#25594)sisrfeng2023-10-11
| |
| * refactor(float): rename ex_floatclose to ex_fclose (#25596)Raphael2023-10-11
| |
| * docs(style): add guideline for fixing compiler error on switch statementFamiu Haque2023-10-10
| | | | | | | | | | | | Problem: Certain compilers (primarily GCC) do not recognize an exhaustive enum switch statement as being exhaustive. This manifests in the form of compiler errors in exhaustive switch statements where each case has a return statement but there isn't a catch-all return statements. These compiler errors are spurious in the context of the Neovim codebase. So #25533 added the `UNREACHABLE` macro to denote apart of the code that's unreachable, which was used after every such switch statement to tell the compiler to treat the switch statement as exhaustive. However, the macro is mentioned nowhere in the style guide,and new contributors would not have any natural way of learning about it as it stands now. This would lead to confusion when they inevitably encounter one of these compiler errors. Solution: Add a style guideline which shows how to use the `UNREACHABLE` macro to fix these compiler errors.
| * docs: small fixesdundargoc2023-10-10
| | | | | | | | | | | | Co-authored-by: Wansmer <wansmer@gmail.com> Co-authored-by: Andrew Voynov <andrewvoynov.b@gmail.com> Co-authored-by: David Moberg <david.moberg@mediatek.com>
| * Merge pull request #25561 from glepnir/9663bfredl2023-10-10
| |\ | | | | | | feat(float): add fclose command
| | * feat(float): add fclose commandglepnir2023-10-10
| | |
| * | refactor: allow not having a `default` case for enumFamiu Haque2023-10-10
| | | | | | | | | | | | | | | | | | Problem: The style guide states that all switch statements that are not conditional on an enum must have a `default` case, but does not give any explicit guideline for switch statements that are conditional on enums. As a result, a `default` case is added in many enum switch statements, even when the switch statement is exhaustive. This is not ideal because it removes the ability to have compiler errors to easily detect unchanged switch statements when a new possible value for an enum is added. Solution: Add explicit guidelines for switch statements that are conditional on an enum, clarifying that a `default` case is not necessary if the switch statement is exhaustive. Also refactor pre-existing code with unnecessary `default` cases.
| * | vim-patch:9.0.2009: cmdline-completion for comma-separated options wrong ↵zeertzjq2023-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#25569) Problem: cmdline-completion for comma-separated options wrong Solution: Fix command-line expansions for options with filenames with commas Fix command-line expansions for options with filenames with commas Cmdline expansion for option values that take a comma-separated list of file names is currently not handling file names with commas as the commas are not escaped. For such options, the commas in file names need to be escaped (to differentiate from a comma that delimit the list items). The escaped comma is unescaped in `copy_option_part()` during option parsing. Fix as follows: - Cmdline completion for option values with comma-separated file/folder names will not start a new match when seeing `\\,` and will instead consider it as one value. - File/folder regex matching will strip the `\\` when seeing `\\,` to make sure it can match the correct files/folders. - The expanded value will escape `,` with `\\,`, similar to how spaces are escaped to make sure the option value is correct on the cmdline. This fix also takes into account the fact that Win32 Vim handles file name escaping differently. Typing '\,' for a file name results in it being handled literally but in other platforms '\,' is interpreted as a simple ',' and commas need to be escaped using '\\,' instead. Also, make sure this new logic only applies to comma-separated options like 'path'. Non-list options like 'set makeprg=<Tab>' and regular ex commands like `:edit <Tab>` do not require escaping and will continue to work. Also fix up documentation to be clearer. The original docs are slightly misleading in how it discusses triple slashes for 'tags'. closes: vim/vim#13303 related: vim/vim#13301 https://github.com/vim/vim/commit/54844857fd6933fa4f6678e47610c4b9c9f7a091 Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
| * | fix(path): restore space separation in 'path' (#25571)zeertzjq2023-10-10
| | | | | | | | | Removing this behavior causes more inconsistencies and bugs.
| * | docs: fix misplaced mention of 'backupdir' (#25568)zeertzjq2023-10-10
| | |
| * | docs: miscellaneous doc and type fixes (#25554)Maria José Solano2023-10-10
| | |
| * | feat(ui-ext): make 'mousehide' into proper ui_option (#25532)Jaehoon Hwang2023-10-09
| |/
| * docs: use `abort()` for unreachable `default:` case in CFamiu Haque2023-10-07
| | | | | | | | | | | | Problem: The style guide currently recommends having a `default:` case for switch statements that are not conditional on an enumerated value. Additionally, it recommends using `assert(false)` if `default:` is unreachable. This is problematic because `assert()` only runs on debug builds, which may lead to confusing breakages in release builds. Moreover, this suggestion is followed nowhere in the C code and `abort()` is used everywhere instead. Solution: Suggest using `abort()` instead of `assert(false)`, that way the program always terminates if a logically unreachable case is reached.
| * Merge pull request #25529 from zeertzjq/vim-9.0.1990zeertzjq2023-10-07
| |\ | | | | | | vim-patch:9.0.1990,27e12c7669e3
| | * vim-patch:27e12c7669e3zeertzjq2023-10-07
| | | | | | | | | | | | | | | | | | runtime(doc): remove E1520 tag (vim/vim#13289) https://github.com/vim/vim/commit/27e12c7669e36a8f60fefa9db9a08024efeb06e8
| | * vim-patch:9.0.1990: strange error numberzeertzjq2023-10-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: strange error number Solution: change error number, add doc tag for E1507 closes: vim/vim#13270 https://github.com/vim/vim/commit/ea746f9e862092aef3d4e95c64d116759b9fabe0 Co-authored-by: Christ van Willegen <cvwillegen@gmail.com>
| * | refactor: cleanupJustin M. Keyes2023-10-06
| | |
| * | fix: gf fails on "foo/bar.txt:1:2" on WindowsLeonardo Mello2023-10-06
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: On Windows, "gf" fails on a filepath that has a line:column suffix. Example: E447: Can't find file "src/app/core/services/identity/identity.service.ts:64:23" Solution: - Remove ":" from 'isfname' on Windows. Colon is not a valid filename character (except for the drive-letter). - Handle drive letters specially in file_name_in_line(). Fixes #25160
| * feat: ignore swapfile for running Nvim processes #25336Justin M. Keyes2023-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The swapfile "E325: ATTENTION" dialog is displayed when editing a file already open in another (running) Nvim. Usually this behavior is annoying and irrelevant: - "Recover" and the other options ("Open readonly", "Quit", "Abort") are almost never wanted. - swapfiles are less relevant for "multi-Nvim" since 'autoread' is enabled by default. - Even less relevant if user enables 'autowrite'. Solution: Define a default SwapExists handler which does the following: 1. If the swapfile is owned by a running Nvim process, automatically chooses "(E)dit anyway" (caveat: this creates a new, extra swapfile, which is mostly harmless and ignored except by `:recover` or `nvim -r`. 2. Shows a 1-line "ignoring swapfile..." message. 3. Users can disable the default SwapExists handler via `autocmd! nvim_swapfile`.
| * vim-patch:2dfc22908e43 (#25485)zeertzjq2023-10-03
| | | | | | | | | | runtime(doc): remove E1507 help tag, which is no longer used (vim/vim#13254) https://github.com/vim/vim/commit/2dfc22908e432f63d200e1fc4f024645c87b8bf3
| * vim-patch:9.0.1972: win32: missing '**' expansion test (#25476)zeertzjq2023-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: win32: missing '**' expansion test (after v9.0.1947) Solution: Add test for MS-Windows win32: Add "**" test Vim supports "**" on MS-Windows. However, it is not tested by `Test_glob_extended_bash`. Unlike Unix, it doesn't use 'shell' and doesn't support {,} expansion. So, I added as a separate test. related: vim/vim#13205 closes: vim/vim#13250 https://github.com/vim/vim/commit/4a1ad5556423dca5f5b7ee39f143579e67569ae1 Co-authored-by: Ken Takata <kentkt@csc.jp>
| * vim-patch:cd39b69b0200zeertzjq2023-10-03
| | | | | | | | | | | | | | | | | | | | runtime(doc): add missing error numbers in the help. (vim/vim#13241) closes: vim/vim#13240 https://github.com/vim/vim/commit/cd39b69b0200005622db7291bbacff95bd03a3d0 Co-authored-by: Yegappan Lakshmanan <4298407+yegappan@users.noreply.github.com>
| * vim-patch:20f48d5b2ddbzeertzjq2023-10-03
| | | | | | | | | | | | | | | | runtime(doc): mention how to disable folding in diff mode (vim/vim#13242) https://github.com/vim/vim/commit/20f48d5b2ddb9fdc29e83f0da6f31f895eaeab47 Co-authored-by: dundargoc <33953936+dundargoc@users.noreply.github.com>
| * vim-patch:ba77bbb5c775zeertzjq2023-10-03
| | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): fix typos. * Fix typo in document (Related: vim/vim#12516) * Fix E1363 duplication * Fix one more typo. https://github.com/vim/vim/commit/ba77bbb5c775663a8b55871f753d7b1b570bb9ba Co-authored-by: h_east <h.east.727@gmail.com>
| * feat(lsp)!: replace snippet parser by lpeg grammarMaria José Solano2023-10-02
| |
| * feat(treesitter): add foldtext with treesitter highlighting (#25391)Till Bungert2023-10-01
| |
| * feat(completion): support completing more string optionszeertzjq2023-10-01
| |
| * vim-patch:9.0.1958: cannot complete option valueszeertzjq2023-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Merge pull request #25455 from bfredl/highlight_namespace_gettersbfredl2023-10-01
| |\ | | | | | | feat(ui): allow to get the highlight namespace. closes #24390
| | * feat(ui): allow to get the highlight namespaceDaniel Steinberg2023-10-01
| | |
| * | vim-patch:9.0.1962: No support for writing extended attributeszeertzjq2023-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Merge pull request #25386 from glepnir/toggle_floatbfredl2023-09-30
| |\ \ | | |/ | |/| feat(float): support toggle show float window
| | * feat(float): support toggle show float windowglepnir2023-09-30
| | |
| * | docs(term): use tic -x for better compatibility with old ncurses (#25421)Dr. Matthew Swabey2023-09-29
| | | | | | | | | 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.
| * | refactor(lsp): deprecate util methods (#25400)Maria José Solano2023-09-29
| | |
| * | vim-patch:02902b547bdb (#25406)zeertzjq2023-09-29
| | | | | | | | | | | | | | | | | | | | | 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>
| * | vim-patch:9.0.1950: Vim9: error codes spread out (#25405)zeertzjq2023-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | vim-patch:9.0.1946: filename expansion using ** in bash may failzeertzjq2023-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | docs: Lua docstrings guidance #25345dundargoc2023-09-27
| | | | | | | | | | | | | | | | | | 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.
| * | vim-patch:5277cfaf8afe (#25397)zeertzjq2023-09-28
| | | | | | | | | | | | | | | runtime(doc): mention mouse scrolling in scrollbind-quickadj (vim/vim#13190) https://github.com/vim/vim/commit/5277cfaf8afe847b7d4dcde6057fbecb001ab64e
| * | feat: NVIM_APPNAME supports relative paths #25233Rory Nesbitt2023-09-27
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Merge pull request #25229 from glepnir/20323bfredl2023-09-26
| |\ | | | | | | fix(highlight): add force in nvim_set_hl
| | * fix(highlight): add force in nvim_set_hlglepnir2023-09-26
| | |
| * | refactor(options)!: graduate some more shortmess flagsbfredl2023-09-25
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | Merge pull request #25344 from gpanders/doc-shortmessbfredl2023-09-25
| |\ \ | | | | | | | | docs: remove "f" from default 'shortmess' value
| | * | docs: remove more references to shm-fGregory Anders2023-09-24
| | | |
| | * | docs: remove "f" from default 'shortmess' valueGregory Anders2023-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | docs: do not use deprecated functions #25334Maria José Solano2023-09-24
| | | |
| * | | vim-patch:960822a11f70zeertzjq2023-09-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>