aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* refactor: include missing assert headerDundar Göc2022-01-26
| | | | | This will solve the "implicit declaration of function ‘assert’" warning when running "make lint".
* Merge pull request #17204 from dundargoc/ci/windows/python-versionJames McCoy2022-01-26
|\
| * ci(windows): use the provided python from github actionsDundar Göc2022-01-26
|/ | | | | This will prevent future errors whenever support for a specific python version we rely on is removed.
* vim-patch:8.2.4196: various file types not recognized (#17182)dundargoc2022-01-25
| | | | | Problem: Various file types not recognized. Solution: Add patterns to recognize more file types (closes vim/vim#9607) https://github.com/vim/vim/commit/428058ab3213e81531cbd7989f4267870f35d52e
* Merge pull request #15910 from glacambre/silent_stdioopenbfredl2022-01-24
|\ | | | | feat(--headless): do not print anything when stdioopen() has been used
| * feat(--headless): add on_print callback to stdioopenglacambre2022-01-24
| | | | | | | | | | | | | | This commit adds an on_print callback to stdioopen's dictionary argument which lets the caller specify a function called each time neovim will try to output something to stdout (e.g. on "echo" or "echoerr" in --headless mode).
* | Merge pull request #17143 from jamessan/coverity-fixesJames McCoy2022-01-24
|\ \ | | | | | | Various Coverity fixes
| * | fix(coverity/188749): nullify pointer to fix use-after-freeJames McCoy2022-01-19
| | |
| * | fix(coverity/340720): error if nvim_eval_statusline given invalid winidJames McCoy2022-01-19
| | |
| * | refactor(coverity/345583): assert fp is non-NULLJames McCoy2022-01-19
| | | | | | | | | | | | Since we already have a typval, we know the lookup will succeed.
| * | refactor(coverity/345582): assert fp is non-NULLJames McCoy2022-01-19
| | | | | | | | | | | | Since we already have a typval, we know the lookup will succeed.
* | | Merge pull request #17156 from zeertzjq/vim-8.2.3584bfredl2022-01-23
|\ \ \ | | | | | | | | vim-patch:8.2.{3584,3586,3587}: :command "-keepscript" argument
| * | | vim-patch:8.2.3587: compiler test fails with backslash file separatorzeertzjq2022-01-21
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Compiler test fails with backslash file separator. Solution: Accept slash and backslash. https://github.com/vim/vim/commit/0a15c7676bccb0c9483579106318e785c6e40a7f
| * | | vim-patch:8.2.3586: command completion test failszeertzjq2022-01-21
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Command completion test fails. Solution: Add new argument to expected output https://github.com/vim/vim/commit/326e7da609a1b115b0ed535e89e970afebe99e35
| * | | vim-patch:8.2.3584: "verbose set efm" reports location of the :compiler commandzeertzjq2022-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: "verbose set efm" reports the location of the :compiler command. (Gary Johnson) Solution: Add the "-keepscript" argument to :command and use it when defining CompilerSet. https://github.com/vim/vim/commit/58ef8a31d7087d495ab1582be5b7a22796ac2451
* | | | Merge pull request #17168 from zeertzjq/ins-char-typebuf-modsbfredl2022-01-23
|\ \ \ \ | | | | | | | | | | fix(input): put modifiers back into typeahead buffer when needed
| * | | | test(input): add more tests for K_SPECIAL escaping in ins_char_typebuf()zeertzjq2022-01-23
| | | | |
| * | | | fix(input): put modifiers back into typeahead buffer when neededzeertzjq2022-01-23
| | | | |
* | | | | vim-patch:6f4754b9f725 (#17179)Christian Clason2022-01-23
| | | | | | | | | | | | | | | | | | | | Update runtime files https://github.com/vim/vim/commit/6f4754b9f7253d7e4ba527064a24aff1acdb1e8f
* | | | | vim-patch:8.2.4188: not all gitconfig files are recognized (#17178)Christian Clason2022-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | Problem: Not all gitconfig files are recognized. Solution: Add a few more patterns. (Tim Pope, closes vim/vim#9597) https://github.com/vim/vim/commit/bcfa11b7dfdfbb4d412dd843a6da3fce68ba2e39
* | | | | vim-patch:8.2.4191: json5 files are not recognized (#17180)dundargoc2022-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | Problem: json5 files are not recognized. Solution: Add a pattern for json5 files. (closes vim/vim#9601) https://github.com/vim/vim/commit/e15ebeffb35da4bb7d9054358671735ce6988c28
* | | | | vim-patch:8.2.4187: gnuplot file not recognized (#17177)Christian Clason2022-01-23
|/ / / / | | | | | | | | | | | | | | | | Problem: Gnuplot file not recognized. Solution: Recognize ".gnuplot". (closes vim/vim#9588) https://github.com/vim/vim/commit/ff5cbe8133c6eb5dd86b9e042f32f589627e9bf9
* | | | Merge pull request #17169 from clason/bump-treesitterThomas Vigouroux2022-01-22
|\ \ \ \ | | | | | | | | | | build(deps): bump tree-sitter to v0.20.3
| * | | | build(deps): bump tree-sitter to v0.20.3Christian Clason2022-01-22
|/ / / / | | | | | | | | | | | | | | | | this version contains massive performance improvements as well as a new `--abi` flag that allows generating backward compatible parsers
* | | | Merge pull request #16936 from zeertzjq/no-escape-csibfredl2022-01-21
|\ \ \ \ | | | | | | | | | | input: never escape CSI bytes and clean up related names and comments
| * | | | refactor: remove CSI unescaping and clean up related names and commentszeertzjq2022-01-21
| | | | |
| * | | | refactor: remove the <xCSI> keyzeertzjq2022-01-21
| | | | | | | | | | | | | | | | | | | | CSI typed directly is now just <CSI>. The <xCSI> key is obsolete.
| * | | | fix(input): never escape CSI byteszeertzjq2022-01-21
| |/ / /
* | | | Merge pull request #17076 from notomo/expose-extmark-more-detailsbfredl2022-01-21
|\ \ \ \ | | | | | | | | | | feat(api): expose extmark more details
| * | | | feat(api): expose extmark more detailsnotomo2022-01-20
| | | | |
* | | | | vim-patch:8.2.4172: filetype detection for BASIC is not optimal (#17161)Christian Clason2022-01-21
| |/ / / |/| | | | | | | | | | | | | | | Problem: Filetype detection for BASIC is not optimal. Solution: Improve BASIC filetype detection. (Doug Kearns) https://github.com/vim/vim/commit/6517f14165cdebf83a07ab9d4aeeb102b4e16e92
* | | | docs(lsp): fix on_publish_diagnostics example (#17146)xnmet2022-01-21
| | | |
* | | | feat(lsp): add handler for workspace/workspaceFolders (#17149)Michael Lingelbach2022-01-21
| |/ / |/| |
* | | test(put_spec): correctly order parameters to eq() (#17134)zeertzjq2022-01-19
| | | | | | | | | | | | The first parameter to eq() should be the expected value, and the second parameter should be the actual value.
* | | Merge pull request #17130 from clason/bump-treesitterThomas Vigouroux2022-01-19
|\ \ \ | | | | | | | | build(deps): bump tree-sitter
| * | | build(deps): bump tree-sitterChristian Clason2022-01-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | update tree-sitter to https://github.com/tree-sitter/tree-sitter/commit/2346570901ef01517dad3e4a944a36d7b7237e4f which includes a massive performance improvement to query construction (bumping ABI compatibility to 14; parsers need to be generated with a flag to take advantage of this)
* | | | refactor: source ftplugin.vim separately from filetype.vim (#17129)Gregory Anders2022-01-18
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a follow-on to #17040. The real benefit of #17040 was ensuring that the ftplugin FileType autocommand was defined first and thus always fired first. A side effect of the implementation in #17040 was that setting variables that modified the state of filetype detection (such as g:did_load_filetypes or g:do_filetype_lua) could no longer be set in the user's init file. Filetype detection can also no longer be prevented from loading by using `:filetype off`. This PR addresses both of those side effects by unconditionally sourcing ftplugin.vim and indent.vim before the user's init file (which ensures that these autocommands run first) and sourcing filetype.vim *after* the user's init file (thus allowing it to be blocked or modified).
* | | refactor: enable filetype detection before user startup scripts (#17040)Gregory Anders2022-01-17
| | |
* | | fix(man.vim): support calling :Man without a section again (#17119)zeertzjq2022-01-17
| | | | | | | | | | | | | | | When `man -w` is called with an empty string as section name, it may fail with an error code, which causes :Man to no longer work without a section. Just remove that argument when no section is specified.
* | | Merge pull request #16813 from neovim/marvim/api-doc-update/masterJames McCoy2022-01-17
|\ \ \ | | | | | | | | docs: regenerate
| * | | docs: regenerate [skip ci]marvim2022-01-17
| | | |
* | | | Merge pull request #17125 from jamessan/auto-prs-as-draftJames McCoy2022-01-17
|\ \ \ \ | |/ / / |/| | | ci: create automated PRs as draft PRs
| * | | ci: create automated PRs as draft PRsJames McCoy2022-01-17
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GH workflows aren't allowed to trigger other GH workflows. Since commitlint is a required check now, we need something manual to happen for it to run on vim-patch/api-doc PRs. Creating these PRs as drafts and then marking them as "ready to review" when we want to merge them will provide the manual trigger to run commitlint. [skip ci]
* | | Merge pull request #17122 from dundargoc/ci/remove-non-working-jobJames McCoy2022-01-17
|\ \ \ | | | | | | | | ci: remove non-working add-reviewer job
| * | | ci: remove non-working add-reviewer jobDundar Göc2022-01-17
| | | |
* | | | Merge pull request #17106 from jamessan/always-run-commitlintJames McCoy2022-01-17
|\ \ \ \ | |/ / / |/| | | Always run commitlint check
| * | | ci(api-docs): avoid running ci for doc commitsJames McCoy2022-01-17
| | | |
| * | | ci(commitlint): use pull_request_target to avoid "skip ci"James McCoy2022-01-17
|/ / /
* | | perf(lsp): request only changed portions of the buffer in changetracking ↵Michael Lingelbach2022-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#17118) This commits introduces two performance improvements in incremental sync: * avoiding expensive lua string reallocations on each on_lines call by requesting only the changed chunk of the buffer as reported by firstline and new_lastline parameters of on_lines * re-using already allocated tables for storing the resulting lines to reduce the load on the garbage collector The majority of the performance improvement is from requesting only changed chunks of the buffer. Benchmark: The following code measures the time required to perform a buffer edit to that operates individually on each line, common to plugins such as vim-commentary. set rtp+=~/.config/nvim/plugged/nvim-lspconfig set rtp+=~/.config/nvim/plugged/vim-commentary lua require('lspconfig')['ccls'].setup({}) function! Benchmark(tries) abort let results_comment = [] let results_undo = [] for i in range(a:tries) echo printf('run %d', i+1) let begin = reltime() normal gggcG call add(results_comment, reltimefloat(reltime(begin))) let begin = reltime() silent! undo call add(results_undo, reltimefloat(reltime(begin))) redraw endfor let avg_comment = 0.0 let avg_undo = 0.0 for i in range(a:tries) echomsg printf('run %3d: comment=%fs undo=%fs', i+1, results_comment[i], results_undo[i]) let avg_comment += results_comment[i] let avg_undo += results_undo[i] endfor echomsg printf('average: comment=%fs undo=%fs', avg_comment / a:tries, avg_undo / a:tries) endfunction command! -bar Benchmark call Benchmark(10) All text changes will be recorded within a single undo operation. Both the comment operation itself and the undo operation will generate an on_lines event for each changed line. Formatter plugins using setline() have also been found to exhibit the same problem (neoformat, :RustFmt in rust.vim), as this function too generates an on_lines event for every line it changes. Using the neovim codebase as an example (commit 2ecf0a4) with neovim itself built at 2ecf0a4 with CMAKE_BUILD_TYPE=Release shows the following performance improvement: src/nvim/lua/executor.c, 1432 lines: - baseline, no optimizations: comment=0.540587s undo=0.440249s - without double-buffering optimization: comment=0.183314s undo=0.060663s - all optimizations in this commit: comment=0.174850s undo=0.052789s src/nvim/search.c, 5467 lines: - baseline, no optimizations: comment=7.420446s undo=7.656624s - without double-buffering optimization: comment=0.889048s undo=0.486026s - all optimizations in this commit: comment=0.662899s undo=0.243628s src/nvim/eval.c, 11355 lines: - baseline, no optimizations: comment=41.775695s undo=44.583374s - without double-buffering optimization: comment=3.643933s undo=2.817158s - all optimizations in this commit: comment=1.510886s undo=0.707928s Co-authored-by: Dmytro Meleshko <dmytro.meleshko@gmail.com>
* | | vim-patch:fd31be29b822 (#17114)Christian Clason2022-01-17
| | | | | | | | | | | | Update runtime files https://github.com/vim/vim/commit/fd31be29b8220ee1cb0b3460c82f2634ae3cc370