aboutsummaryrefslogtreecommitdiff
path: root/runtime
Commit message (Collapse)AuthorAge
* revert: "feat(extmarks): subpriorities (relative to declaration order) ↵Gregory Anders2024-05-01
| | | | | | | | | | | | (#27131)" (#28585) This reverts commit 15e77a56b711102fdc123e15b3f37d49bc0b1df1. Subpriorities were added in https://github.com/neovim/neovim/pull/27131 as a mechanism for enforcing query order when using iter_matches in the Tree-sitter highlighter. However, iter_matches proved to have too many complications to use in the highlighter so we eventually reverted back to using iter_captures (https://github.com/neovim/neovim/pull/27901). Thus, subpriorities are no longer needed and can be removed.
* vim-patch:9.1.0383: filetype: .out files recognized as tex filesChristian Clason2024-05-01
| | | | | | | | | | | | Problem: filetype: .out files recognized as tex files Solution: Do not set an explicit filetype until it is clear what this should be (shane.xb.qian) closes: vim/vim#14670 https://github.com/vim/vim/commit/e35478bc9d48189322432248105d3b24e0efb3d0 Co-authored-by: shane.xb.qian <shane.qian@foxmail.com>
* vim-patch:9.1.0382: filetype: Kbuild files are not recognizedChristian Clason2024-05-01
| | | | | | | | | | | | Problem: Kbuild files are not recognized. Solution: Detect Kbuild files as make files. (Bruno Belanyi) closes: vim/vim#14676 https://github.com/vim/vim/commit/5cbc9a69e529361e1725f422b8cd6157fe0adc33 Co-authored-by: Bruno BELANYI <bruno@belanyi.fr>
* docs: format vim_diff.txt for "flow" layout #28584Justin M. Keyes2024-04-30
|
* docs(api): sort unreleased nvim__ functions last #28580Justin M. Keyes2024-04-30
|
* feat(diagnostic): revert default behaviour of goto_next/prev()Lewis Russell2024-04-30
| | | | | | | | | | | | | | | | | Follow-up to #28490 Problem: The new behaviour of goto_next/prev() of navigating to the next highest severity doesn't work well when diagnostic providers have different interpretations of severities. E.g. the user may be blocked from navigating to a useful LSP warning, due to some linter error. Solution: The behaviour of next highest severity is now a hidden option `_highest = true`. We can revisit how to integrate this behaviour during the 0.11 cycle.
* fix(api): mark nvim__complete_set as experimental #28579Justin M. Keyes2024-04-30
| | | | | | | | Problem: nvim_complete_set was added in 5ed55ff14c8b7e346811cb6228bf63fb5106bae9 but needs more bake time. Solution: Rename it, mark it as experimental.
* docs: misc #24163Justin M. Keyes2024-04-30
| | | | | | | | | | - Also delete old perl scripts which are not used since 8+ years ago. fix #23251 fix #27367 ref https://github.com/neovim/neovim/issues/2252#issuecomment-1902662577 Helped-by: Daniel Kongsgaard <dakongsgaard@gmail.com> Co-authored-by: Kevin Pham <keevan.pham@gmail.com>
* docs: various fixes (#28208)dundargoc2024-04-30
| | | | | | | | | | Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com> Co-authored-by: Famiu Haque <famiuhaque@proton.me> Co-authored-by: Gregory Anders <greg@gpanders.com> Co-authored-by: Guilherme Soares <guilhermesoares1970@gmail.com> Co-authored-by: Jannik Buhr <jannik.m.buhr@gmail.com> Co-authored-by: thomaswuhoileong <72001875+thomaswuhoileong@users.noreply.github.com> Co-authored-by: tom-anders <13141438+tom-anders@users.noreply.github.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* vim-patch:c4d0c8c81245Christian Clason2024-04-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(java): Improve the recognition of the "indent" method declarations (vim/vim#14659) There is a flaw in the current implementation that has been exacerbated around v5.2. It lies in the recognition of all three indentation styles simultaneously: a tab, two space, and eight space character(s). With it, it is not uncommon to misidentify various constructs as method declarations when they belong to two-space indented members and other blocks of a type and are offset at eight space characters or a tab from the start of the line. For example, ------------------------------------------------------------ class Test { static String hello() { return "hello"; } public static void main(String[] args) { try { if (args.length > 0) { // FIXME: eight spaces. System.out.println(args[0]); } else { // FIXME: a tab. System.out.println(hello()); } } catch (Exception e) { throw new Error(e); } } } ------------------------------------------------------------ ------------------------------------------------------------ :let g:java_highlight_functions = 'indent' :doautocmd Syntax ------------------------------------------------------------ A better approach is to pick an only indentation style out of all supported styles (so either two spaces _or_ eight spaces _or_ a tab). Note that tabs and spaces can still be mixed, only the leading tab or the leading run of spaces matters for the recognition. And there is no reason to not complement the set of valid styles with any number of spaces from 1 to 8, inclusively. Please proceed with the necessary change as follows: - rename from "indent" to "indent2" for a 2-space run; - rename from "indent" to "indent8" for an 8-space run; - continue to have "indent" for a tab run; - define an "indent" variable with a suffix number denoting the preferred amount of indentation for any other run of spaces [1-8]. As before, this alternative style of recognition of method declarations still does not prescribe naming conventions and still cannot recognise method declarations in nested types that are conventionally indented. The proposed changes also follow suit of "style" in stopping the claiming of constructor and enum constant declarations. https://github.com/vim/vim/commit/c4d0c8c81245918632a9d3c2c20a390546fad065 Co-authored-by: Aliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com>
* vim-patch:dc5c90554145Christian Clason2024-04-30
| | | | | | | | | | | | runtime(jq): remove undefined var s:save_cpoptions and add include setting closes: vim/vim#14661 closes: vim/vim#14663 https://github.com/vim/vim/commit/dc5c9055414501c438883c3b09ba8a3a7f983029 Co-authored-by: GodFather <vito.blog@gmail.com> Co-authored-by: itchyny <itchyny@cybozu.co.jp>
* vim-patch:9.1.0381: cbuffer and similar commands don't accept a range (#28571)zeertzjq2024-04-30
| | | | | | | | | | | | | Problem: cbuffer and similar quickfix and locationlist commands don't accept a range, even so it is documented they should (ilan-schemoul, after 8.1.1241) Solution: Define ex commands with ADDR_LINES instead of ADDR_OTHER fixes: vim/vim#14638 closes: vim/vim#14657 https://github.com/vim/vim/commit/652c821366691a8bd5474766581090df0c742fa1 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:04e1aaa94e3b (#28570)zeertzjq2024-04-30
| | | | | | | | | runtime(doc): Fix a typo in usr_30.txt closes: vim/vim#14662 https://github.com/vim/vim/commit/04e1aaa94e3b7bf3ae6d376f52504aeb02bc9ca5 Co-authored-by: UM-Li <um-li@tuta.io>
* fix(lsp): redundant vim.snippet.jumpable #28560Maria José Solano2024-04-29
|
* vim-patch:2e9b9e9a9ebfChristian Clason2024-04-29
| | | | | | | | runtime(asm): missing setlocal in indent plugin (vim/vim#14658) https://github.com/vim/vim/commit/2e9b9e9a9ebf3fd40437260ecd6b1e23b02c636b Co-authored-by: Marc Sven Schulte <167623652+msschulte@users.noreply.github.com>
* vim-patch:f351fd829204 (#28551)ObserverOfTime2024-04-29
| | | | | | | | runtime(ssa): improve syntax file performance (vim/vim#14654) fixes: vim/vim#14653 fixes: neovim/neovim#25950 https://github.com/vim/vim/commit/f351fd82920427b33a160cab9fdbc35ac1deb681
* feat(defaults): visual CTRL-R for LSP mappings #28537Justin M. Keyes2024-04-28
| | | | | | | | | | Problem: The new LSP "refactor menu" keybinding "crr" is also defined in visual mode, which overlaps with the builtin "c". Solution: Use CTRL-R instead of "crr" for visual mode. fix #28528
* feat(defaults): improve :grep defaults #28545Luna Saphie Mittelbach2024-04-28
| | | | | | Based on feedback from #28324, pass -H and -I to regular grep (available on all platforms officially supported by Neovim), and only pass -uu to ripgrep. This makes :grep ignore binary files by default in both cases.
* fix(diagnostic): get border from config (#28531)glepnir2024-04-28
| | | | Co-authored-by: Justin M. Keyes <justinkz@gmail.com> Co-authored-by: Gregory Anders <greg@gpanders.com>
* fix(treesitter): enforce lowercase language names (#28546)Christian Clason2024-04-28
| | | | | | | | | | | * fix(treesitter): enforce lowercase language names Problem: On case-insensitive file systems (e.g., macOS), `has_parser` will return `true` for uppercase aliases, which will then try to inject the uppercase language unsuccessfully. Solution: Enforce and assume parser names to be lowercase when resolving language names.
* fix(snippet): do not add extra indent on newlines (#28538)Mathias Fußenegger2024-04-28
| | | | | | | | | | | | | | | | | | | | | | | Reverts parts of https://github.com/neovim/neovim/pull/27674 LSP snippets typically do include tabs or spaces to add extra indentation and don't rely on the client using `autoindent` functionality. For example: public static void main(String[] args) {\n\t${0}\n} Notice the `\t` after `{\n` Adding spaces or tabs independent of that breaks snippets for languages like Haskell where you can have snippets like: ${1:name} :: ${2}\n${1:name} ${3}= ${0:undefined} To generate: name :: name = undefined
* docs: breaking change in diagnostic goto #28541Gregory Anders2024-04-27
|
* fix(diagnostic): invalid col number compare in next_diagnostic (#28397)Raphael2024-04-27
| | | | | Problem: when line is blank link then there will got an invalid column number in math.min compare. Solution: make sure the min column number is 0 not an illegal number.
* vim-patch:92917069b1a8Christian Clason2024-04-27
| | | | | | | | | | runtime(debversions): Add oracular (24.10) as Ubuntu release name closes: vim/vim#14645 https://github.com/vim/vim/commit/92917069b1a89e0e6c253a585dfe0a19cc2c0699 Co-authored-by: Simon Quigley <simon@tsimonq2.net>
* vim-patch:79952b9c6774Christian Clason2024-04-27
| | | | | | | | | | runtime(jq): include syntax, ftplugin and compiler plugin closes: vim/vim#14619 https://github.com/vim/vim/commit/79952b9c6774d30f248a0ecf9ea84318be947fc4 Co-authored-by: Vito <vito.blog@gmail.com>
* vim-patch:9525f6213604zeertzjq2024-04-27
| | | | | | | | runtime(doc): fix typo synconcealend -> synconcealed (vim/vim#14644) https://github.com/vim/vim/commit/9525f62136047225f4dca8ba68ab2023600ec522 Co-authored-by: Philip H <47042125+pheiduck@users.noreply.github.com>
* vim-patch:00ae5c5cba7bzeertzjq2024-04-27
| | | | | | | | runtime(doc): fix typo https://github.com/vim/vim/commit/00ae5c5cba7b2b42662687b3150397fe1737fba0 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:fe1e2b5e2d65zeertzjq2024-04-27
| | | | | | | | | | runtime(doc): clarify syntax vs matching mechanism fixes: vim/vim#14643 https://github.com/vim/vim/commit/fe1e2b5e2d65f05d820f17db935b15454a63be06 Co-authored-by: Christian Brabandt <cb@256bit.org>
* fix(lsp): change `silent` in lsp.start.Opts to optional (#28524)Mathias Fußenegger2024-04-26
|
* feat(diagnostic): add default mappings for diagnostics (#16230)Gregory Anders2024-04-26
|
* fix(man.vim): q quits after jump to different tag in MANPAGER modified (#28495)Brian Cao2024-04-26
|
* feat(lsp): add more LSP defaults (#28500)Gregory Anders2024-04-26
| | | | | | - crn for rename - crr for code actions - gr for references - <C-S> (in Insert mode) for signature help
* refactor(vim.iter)!: rename xxback() => rxx() #28503Justin M. Keyes2024-04-26
| | | | | | | | | | | | | | | | Problem: vim.iter has both `rfind()` and various `*back()` methods, which work in "reverse" or "backwards" order. It's inconsistent to have both kinds of names, and "back" is fairly uncommon (rust) compared to python (rfind, rstrip, rsplit, …). Solution: - Remove `nthback()` and let `nth()` take a negative index. - Because `rnth()` looks pretty obscure, and because it's intuitive for a function named `nth()` to take negative indexes. - Rename `xxback()` methods to `rxx()`. - This informally groups the "list-iterator" functions under a common `r` prefix, which helps discoverability. - Rename `peekback()` to `pop()`, in duality with the existing `peek`.
* fix(lsp): ensure buffer is not attached more than onceLewis Russell2024-04-26
| | | | | | | | | | | | | | Fixes regression introduced in #28030 If an LSP server is restarted, then the associated `nvim_buf_attach` call will not detach if no buffer changes are sent between the client stopping and a new one being created. This leads to `nvim_buf_attach` being called multiple times for the same buffer, which then leads to changetracking sending duplicate requests to the server (one per attach). To solve this, introduce separate tracking (client agnostic) on which buffers have had calls to `nvim_buf_attach`.
* fix: lua annotationsLewis Russell2024-04-26
|
* fix(treesitter.foldexpr): check for all insert submodesTheLeoP2024-04-26
|
* fix(lsp): add "silent" option to vim.lsp.start (#28478)Gregory Anders2024-04-26
| | | | | | | | | | | | | | | | | | vim.notify cannot be suppressed and it is not always necessary to display a visible warning to the user if the RPC process fails to start. For instance, a user may have the same LSP configuration across systems, some of which may not have all of the LSP server executables installed. In that case, the user receives a notification every time a file is opened that they cannot suppress. Instead of using vim.notify in vim.lsp.rpc, propagate a normal error up through the call stack and use vim.notify in vim.lsp.start() only if the "silent" option is not set. This also updates lsp.start_client() to return an error message as its second return value if an error occurred, rather than calling vim.notify directly. Callers of lsp.start_client() will need to update call sites appropriately if they wish to report errors to the user (or even better, switch to vim.lsp.start).
* refactor(lsp): rename foos_by_bar to bar_foos #28505Yi Ming2024-04-26
|
* fix(lsp): buffer messages until connected to server (#28507)Mathias Fußenegger2024-04-26
| | | | | | `handle:write(msg)` can fail if the socket is not yet connected to the server. Should address https://github.com/neovim/neovim/pull/28398#issuecomment-2078152491
* vim-patch:98b12ede3175Christian Clason2024-04-25
| | | | | | | | | | | | | runtime(asm): fix undefined variable in indent plugin It's an indent script, so we need to set the b:undo_indent variable instead of the b:undo_ftplugin var. fixes: vim/vim#14602 https://github.com/vim/vim/commit/98b12ede31754071f36fb7a73324456c1ee7b89c Co-authored-by: Christian Brabandt <cb@256bit.org>
* feat(diagnostic): goto functions jump to highest severity (#28490)Gregory Anders2024-04-25
| | | | | When the "severity" option is nil, vim.diagnostic.goto_next() and vim.diagnostic.goto_prev() jump to the next diagnostic with the highest severity.
* fix(vim.ui)!: change open() to return pcall-like values #28502Justin M. Keyes2024-04-25
| | | | | | | | | Problem: `vim.ui.open` unnecessarily invents a different success/failure convention. Its return type was changed in 57adf8c6e01d, so we might as well change it to have a more conventional form. Solution: Change the signature to use the `pcall` convention of `status, result`.
* vim-patch:a4c085a3e607Christian Clason2024-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(java): Improve the recognition of the "style" method declarations - Request the new regexp engine (v7.3.970) for [:upper:] and [:lower:]. - Recognise declarations of in-line annotated methods. - Recognise declarations of _strictfp_ methods. - Establish partial order for method modifiers as shown in the MethodModifier production; namely, _public_ and friends should be written the leftmost, possibly followed by _abstract_ or _default_, or possibly followed by other modifiers. - Stop looking for parameterisable primitive types (void<?>, int<Object>, etc., are malformed). - Stop looking for arrays of _void_. - Acknowledge the prevailing convention for method names to begin with a small letter and for class/interface names to begin with a capital letter; and, therefore, desist from claiming declarations of enum constants and constructors with javaFuncDef. Rationale: + Constructor is distinct from method: * its (overloaded) name is not arbitrary; * its return type is implicit; * its _throws_ clause depends on indirect vagaries of instance (variable) initialisers; * its invocation makes other constructors of its type hierarchy invoked one by one, concluding with the primordial constructor; * its explicit invocation, via _this_ or _super_, can only appear as the first statement in a constructor (not anymore, see JEP 447); else, its _super_ call cannot appear in constructors of _record_ or _enum_; and neither invocation is allowed for the primordial constructor; * it is not a member of its class, like initialisers, and is never inherited; * it is never _abstract_ or _native_. + Constructor declarations tend to be few in number and merit visual recognition from method declarations. + Enum constants define a fixed set of type instances and more resemble class variable initialisers. Note that the code duplicated for @javaFuncParams is written keeping in mind for g:java_highlight_functions a pending 3rd variant, which would require none of the :syn-cluster added groups. closes: vim/vim#14620 https://github.com/vim/vim/commit/a4c085a3e607bd01d34e1db600b6460fc35fb0a3 Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
* feat(fs): add vim.fs.root (#28477)Gregory Anders2024-04-24
| | | | | | vim.fs.root() is a function for finding a project root relative to a buffer using one or more "root markers". This is useful for LSP and could be useful for other "projects" designs, as well as for any plugins which work with a "projects" concept.
* feat(api): allow floats to be opened in non-current tabpage (#28480)Will Hopkins2024-04-25
| | | \
* perf(diagnostic): avoid table copies to filter by severity (#28491)Mathias Fußenegger2024-04-24
| | | | | | Instead of adding all diagnostics matching lnum filters to a table, and then copying that table to another table while applying the severity filter, this changes the flow to only add diagnostics matching both filters in the first pass.
* refactor(lsp): merge subtypes and supertypes into typehierarchy (#28467)Mathias Fußenegger2024-04-23
| | | | Both methods had pretty much the same documentation and shared the implementation.
* test: improve test conventionsdundargoc2024-04-23
| | | | | | | | | Specifically, functions that are run in the context of the test runner are put in module `test/testutil.lua` while the functions that are run in the context of the test session are put in `test/functional/testnvim.lua`. Closes https://github.com/neovim/neovim/issues/27004.
* perf(lua): faster vim.deprecate() #28470Evgeni Chasnovski2024-04-23
| | | | | | | | | | | | Problem: `vim.deprecate()` can be relatively significantly slower than the deprecated function in "Nvim" plugin. Solution: Optimize checks for "Nvim" plugin. This also results into not distinguishing "xxx-dev" and "xxx" versions when doing checks, which is essentially covered by the deprecation logic itself. With this rewrite I get the times from #28459: `{ 0.024827, 0.003797, 0.002024, 0.001774, 0.001703 }`. For quicker reference: - On current Nightly it is something like `{ 3.72243, 0.918169, 0.968143, 0.763256, 0.783424 }`. - On 0.9.5: `{ 0.002955, 0.000361, 0.000281, 0.000251, 0.00019 }`.
* fix(diagnostic): vim.diagnostic.get(…,{lnum=…}) on multi-line diagnostic ↵Raphael2024-04-23
| | | | | | | | #28273 Problem: vim.diagnostic.get(…,{lnum=…}) does not match multi-line diagnostics. Solution: add end_lnum support.