aboutsummaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAge
* Merge pull request #17191 from zeertzjq/vim-8.2.4203bfredl2022-01-27
|\ | | | | vim-patch:8.2.4203: entering a character with CTRL-V may include modifiers
| * test: add more tests for Insert mode Ctrl-Vzeertzjq2022-01-25
| |
* | Merge pull request #17155 from zeertzjq/vim-8.2.3121bfredl2022-01-27
|\ \ | | | | | | vim-patch:8.2.{3121,3410}: two 'listchars' fixes
| * | vim-patch:8.2.3121: 'listchars' "exceeds" character appears in foldcolumnzeertzjq2022-01-21
| | | | | | | | | | | | | | | | | | | | | | | | Problem: 'listchars' "exceeds" character appears in foldcolumn. Window separator is missing. (Leonid V. Fedorenchik) Solution: Only draw the "exceeds" character in the text area. Break the loop when not drawing the text. (closes vim/vim#8524) https://github.com/vim/vim/commit/41fb723ee97baa2f095cde601a5a144b168b7a6b
* | | Merge pull request #17174 from zeertzjq/vim-8.2.3153bfredl2022-01-27
|\ \ \ | | | | | | | | vim-patch:8.2.3153: URLs with a dash in the scheme are not recognized
| * | | test(unit): add unit tests for path_with_urlzeertzjq2022-01-24
| | | |
* | | | Merge pull request #17102 from zeertzjq/vim-8.2.1762bfredl2022-01-27
|\ \ \ \ | |_|_|/ |/| | | vim-patch:8.2.1762: when a timer uses :stopinsert completion isn't stopped
| * | | vim-patch:8.2.1762: when a timer uses :stopinsert completion isn't stoppedzeertzjq2022-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: When a timer uses :stopinsert Insert mode completion isn't stopped. (Stanley Chan) Solution: Call ins_compl_prep(ESC). https://github.com/vim/vim/commit/d0e1b7103c14eb0d175c6b245b4b6ed93a204da9
* | | | 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 #17156 from zeertzjq/vim-8.2.3584bfredl2022-01-23
|\ \ \ \ | | | | | | | | | | vim-patch:8.2.{3584,3586,3587}: :command "-keepscript" argument
| * | | | 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
* | | | 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
| | | |
* | | | 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
| | | | |
| * | | | 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
| | | |
* | | | 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 #16836 from bfredl/mark2bfredl2022-01-15
|\ \ \ | | | | | | | | refactor(marks): use a more efficient representation with less pointer indirection
| * | | refactor(extmarks): use a more efficient representationBjörn Linse2022-01-15
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | marktree.c was originally constructed as a "generic" datatype, to make the prototyping of its internal logic as simple as possible and also as the usecases for various kinds of extmarks/decorations was not yet decided. As a consequence of this, various extra indirections and allocations was needed to use marktree to implement extmarks (ns/id pairs) and decorations of different kinds (some which is just a single highlight id, other an allocated list of virtual text/lines) This change removes a lot of indirection, by making Marktree specialized for the usecase. In particular, the namespace id and mark id is stored directly, instead of the 64-bit global id particular to the Marktree struct. This removes the two maps needed to convert between global and per-ns ids. Also, "small" decorations are stored inline, i.e. those who doesn't refer to external heap memory anyway. That is highlights (with priority+flags) are stored inline, while virtual text, which anyway occurs a lot of heap allocations, do not. (previously a hack was used to elide heap allocations for highlights with standard prio+flags) TODO(bfredl): the functionaltest-lua CI version of gcc is having severe issues with uint16_t bitfields, so splitting up compound assignments and redundant casts are needed. Clean this up once we switch to a working compiler version.
* | | feat: use nvim_buf_set_extmark for vim.highlight (#16963)Michael Lingelbach2022-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | Closes https://github.com/neovim/neovim/issues/13647 This allows customizing the priority of the highlights. * Add default priority of 50 * Use priority of 200 for highlight on yank * use priority of 40 for highlight references (LSP)
* | | Merge pull request #17001 from mjlbach/feat/non-strict-extmarksbfredl2022-01-15
|\ \ \ | |/ / |/| | feat(extmarks): add strict option
| * | Hopefully last attemptMichael Lingelbach2022-01-15
| | |
| * | Address review r3Michael Lingelbach2022-01-15
| | |
* | | fix(filetype): expand tildes in filetype patterns (#17091)Gregory Anders2022-01-14
| | | | | | | | | | | | | | | | | | | | | This allows patterns like ["~/.config/foo"] = "fooscript" to work.
* | | Merge pull request #16998 from zeertzjq/lua-vim-var-funcrefbfredl2022-01-14
|\ \ \ | | | | | | | | feat(api, lua): more conversions between LuaRef and Vim Funcref
| * | | feat(api, lua): more conversions between LuaRef and Vim Funcrefzeertzjq2022-01-13
| | | |
* | | | Merge pull request #17034 from zeertzjq/compl-lua-selectbfredl2022-01-13
|\ \ \ \ | | | | | | | | | | feat(completion): support selecting item via API from Lua mapping
| * | | | feat(completion): support selecting item via API from Lua mappingzeertzjq2022-01-11
| | | | |
* | | | | fix(lsp): strictly enforce passing offset encoding (#17049)Michael Lingelbach2022-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes the "fallback" to utf-16 in many of our helper functions. We should always explicitly pass these around when possible except in two locations: * generating params with help utilities called by buf.lua functions * the buf.lua functions themselves Anything that is called by the handler should be passed the offset encoding.
* | | | | fix(lsp): handle negative activeSignature in signatureHelp (#17064)Mathias Fußenegger2022-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | omnisharp-roslyn can send negative values: { activeParameter = 0, activeSignature = -1, signatures = { { documentation = "", label = "TestEntity.TestEntity()", parameters = {} } } } In 3.16 of the specification `activeSignature` is defined as `uinteger` and therefore negative values shouldn't be allowed, but within 3.15 it was defined as `number` which makes me think we can be a bit lenient in this case and handle them. The expected behavior is quite clear: The active signature. If omitted or the value lies outside the range of `signatures` the value defaults to zero or is ignored if the `SignatureHelp` has no signatures. Fixes an error: util.lua:1685: attempt to get length of local 'lines' (a nil value) util.lua:1685: in function 'trim_empty_lines' handlers.lua:334: in function 'textDocument/signatureHelp'
* | | | | fix(lsp): fix applying multiple out-of-range TextEdits (#17037)hrsh7th2022-01-13
| | | | |
* | | | | Merge pull request #16945 from theHamsta/cached-queriesThomas Vigouroux2022-01-13
|\ \ \ \ \ | | | | | | | | | | | | perf(treesitter): cache query parsing
| * | | | | perf(treesitter): cache query parsingStephan Seitz2022-01-06
| | | | | |
* | | | | | fix(keywordprg): retain terminal buffer after K (#17046)Daniel Steinberg2022-01-12
| |_|/ / / |/| | | |
* | | | | refactor(lsp): debounce timer per buf and unify with non-debounce (#17016)Mathias Fußenegger2022-01-11
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Part of the `pending_change` closure in the `changetracking.prepare` was a bit confusing because it has access to `bufnr` and `uri` but it could actually contain pending changes batched for multiple buffers. (We accounted for that by grouping `pending_changes` by a `uri`, but it's not obvious what's going on) This commit changes the approach to do everything per buffer to avoid any ambiguity. It also brings the debounce/no-debounce a bit closer together: The only difference is now whether a timer is used or if it is triggered immediately
* | | | fix(completion): prevent K_LUA from closing pumzeertzjq2022-01-10
| | | |
* | | | test: use old style test for testing filetype.lua (#17003)Gregory Anders2022-01-09
| | | | | | | | | | | | | | | | | | | | This is a much better solution than #16942 as it doesn't require copying every new change from test_filetype.vim into filetype_spec.lua (which is much more maintainable).
* | | | Merge pull request #16983 from dundargoc/test/add-vimruntime-variableJames McCoy2022-01-08
|\ \ \ \ | | | | | | | | | | test: add VIMRUNTIME variable to the clear function
| * | | | test: add VIMRUNTIME variable to the clear functionDundar Göc2022-01-08
| | | | | | | | | | | | | | | | | | | | Some of the tests will fail if this isn't explicitly set.
* | | | | test: remove redundant feed_command('terminal') (#16993)zeertzjq2022-01-08
|/ / / / | | | | | | | | It just types :terminal<CR> into the terminal, which is redundant.
* | / / fix: make mode() return correct value in ex modebrian m. carlson2022-01-08
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | When the user is in ex mode, a call to mode(1) is documented to return "cv". However, it does not currently do so, because the check which checks for ex mode is nested inside a conditional which is never reached in ex mode. Vim uses an explicit check for exmode_active, so let's do the same thing here. Add some tests for this case both with a TTY and in silent mode.
* | | vim-patch:8.2.4014: git and gitcommit file types not properly recognized ↵Christian Clason2022-01-07
| | | | | | | | | | | | | | | | | | | | | (#16953) Problem: Git and gitcommit file types not properly recognized. Solution: Adjust filetype detection. (Tim Pope, closes vim/vim#9477) https://github.com/vim/vim/commit/c689f8c3d98fffe7e13730e198ce120934528f9c
* | | fix(lua): print multiple return values with =expr (#16933)Shadman2022-01-06
| | |
* | | feat(lua): add notify_once() (#16956)Gregory Anders2022-01-06
| | | | | | | | | Like vim.notify(), but only displays the notification once.
* | | Merge pull request #16591 from shadmansaleh/feat/lua_keymaps2Björn Linse2022-01-06
|\ \ \ | |/ / |/| | feat(lua): add support for lua keymaps
| * | feat(lua): add vim.keymapshadmansaleh2022-01-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces two new functions `vim.keymap.set` & `vim.keymap.del` differences compared to regular set_keymap: - remap is used as opposite of noremap. By default it's true for <Plug> keymaps and false for others. - rhs can be lua function. - mode can be a list of modes. - replace_keycodes option for lua function expr maps. (Default: true) - handles buffer specific keymaps Examples: ```lua vim.keymap.set('n', 'asdf', function() print("real lua function") end) vim.keymap.set({'n', 'v'}, '<leader>lr', vim.lsp.buf.references, {buffer=true}) vim.keymap.set('n', '<leader>w', "<cmd>w<cr>", {silent = true, buffer = 5 }) vim.keymap.set('i', '<Tab>', function() return vim.fn.pumvisible() == 1 and "<C-n>" or "<Tab>" end, {expr = true}) vim.keymap.set('n', '[%', '<Plug>(MatchitNormalMultiBackward)') vim.keymap.del('n', 'asdf') vim.keymap.del({'n', 'i', 'v'}, '<leader>w', {buffer = 5 }) ```
* | | test(filetype): port test_filetype to LuaGregory Anders2022-01-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because filetype.lua is gated behind an opt-in variable, it's not tested during the "standard" test_filetype.vim test. So port the test into filetype_spec where we enable the opt-in variable. This means runtime Vim patches will need to update test_filetype in two places. This can eventually be removed if/when filetype.lua is made opt-out rather than opt-in.