aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/release.yml4
-rw-r--r--CMakeLists.txt2
-rw-r--r--contrib/flake.nix95
-rw-r--r--runtime/doc/eval.txt7
-rw-r--r--runtime/doc/lsp.txt69
-rw-r--r--runtime/lua/vim/lsp.lua21
-rw-r--r--runtime/lua/vim/lsp/buf.lua10
-rw-r--r--runtime/lua/vim/lsp/diagnostic.lua14
-rw-r--r--runtime/lua/vim/lsp/util.lua5
-rw-r--r--runtime/lua/vim/treesitter/language.lua16
-rw-r--r--runtime/lua/vim/treesitter/languagetree.lua31
-rw-r--r--src/nvim/charset.c2
-rw-r--r--src/nvim/eval.lua1
-rw-r--r--src/nvim/eval/funcs.c21
-rw-r--r--src/nvim/eval/typval.c13
-rw-r--r--src/nvim/ex_cmds.lua1092
-rw-r--r--src/nvim/ex_cmds_defs.h23
-rw-r--r--src/nvim/ex_docmd.c46
-rw-r--r--src/nvim/generators/gen_ex_cmds.lua2
-rw-r--r--src/nvim/globals.h4
-rw-r--r--src/nvim/hardcopy.c1
-rw-r--r--src/nvim/lua/vim.lua6
-rw-r--r--src/nvim/macros.h3
-rw-r--r--src/nvim/main.c13
-rw-r--r--src/nvim/marktree.c3
-rw-r--r--src/nvim/option.c1
-rw-r--r--src/nvim/popupmnu.c1
-rw-r--r--src/nvim/regexp.c16
-rw-r--r--src/nvim/regexp_nfa.c16
-rw-r--r--src/nvim/testdir/test_options.vim10
-rw-r--r--src/nvim/testdir/test_regexp_latin.vim7
-rw-r--r--src/nvim/testdir/test_signs.vim53
-rw-r--r--src/nvim/version.c1
-rw-r--r--src/nvim/version.h11
-rw-r--r--test/functional/core/startup_spec.lua4
-rw-r--r--test/functional/eval/executable_spec.lua15
-rw-r--r--test/functional/eval/exepath_spec.lua40
-rw-r--r--test/functional/eval/function_spec.lua8
-rwxr-xr-xtest/functional/fixtures/bin/false0
-rwxr-xr-xtest/functional/fixtures/bin/false.cmd0
-rwxr-xr-xtest/functional/fixtures/bin/null0
-rwxr-xr-xtest/functional/fixtures/bin/null.cmd0
-rwxr-xr-xtest/functional/fixtures/bin/true0
-rwxr-xr-xtest/functional/fixtures/bin/true.cmd0
-rw-r--r--test/functional/fixtures/lua/syntax_error.lua1
-rw-r--r--test/functional/lua/treesitter_spec.lua4
-rw-r--r--test/functional/lua/vim_spec.lua15
-rw-r--r--test/functional/terminal/tui_spec.lua2
48 files changed, 1034 insertions, 675 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 2acd615da1..d7f9556028 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -12,9 +12,10 @@ on:
tags:
- v[0-9]+.[0-9]+.[0-9]+
+# Build on the oldest supported images, so we have broader compatibility
jobs:
linux:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-16.04
outputs:
version: ${{ steps.build.outputs.version }}
release: ${{ steps.build.outputs.release }}
@@ -42,7 +43,6 @@ jobs:
retention-days: 1
appimage:
- # Build on the oldest supported image, so we have broader compatibility
runs-on: ubuntu-16.04
steps:
- uses: actions/checkout@v2
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 78588fb3da..0b34639d32 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -659,7 +659,7 @@ endif()
if(LUACHECK_PRG)
add_custom_target(lualint
- COMMAND ${LUACHECK_PRG} -q runtime/ src/ test/
+ COMMAND ${LUACHECK_PRG} -q runtime/ src/ test/ --exclude-files test/functional/fixtures/lua/syntax_error.lua
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
else()
add_custom_target(lualint false
diff --git a/contrib/flake.nix b/contrib/flake.nix
new file mode 100644
index 0000000000..a75e584075
--- /dev/null
+++ b/contrib/flake.nix
@@ -0,0 +1,95 @@
+{
+ description = "Neovim flake";
+
+ inputs = {
+ nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+ };
+
+ outputs = { self, nixpkgs }: let
+ system = "x86_64-linux";
+ legacyPkgs = nixpkgs.legacyPackages."${system}".pkgs;
+ pkgs = legacyPkgs;
+ in {
+
+ packages."${system}" = rec {
+
+ neovim = legacyPkgs.neovim-unwrapped.overrideAttrs(oa: {
+ version = "master";
+ src = ../.;
+
+ buildInputs = oa.buildInputs ++ ([
+ pkgs.tree-sitter
+ ]);
+
+ cmakeFlags = oa.cmakeFlags ++ [
+ "-DUSE_BUNDLED=OFF"
+ ];
+ });
+
+ # a development binary to help debug issues
+ neovim-debug = (neovim.override {
+ stdenv = pkgs.llvmPackages_latest.stdenv;
+ lua = pkgs.enableDebugging legacyPkgs.luajit;
+ }).overrideAttrs(oa:{
+ cmakeBuildType="Debug";
+ cmakeFlags = oa.cmakeFlags ++ [
+ "-DMIN_LOG_LEVEL=0"
+ ];
+ });
+
+ # for neovim developers, very slow
+ # brings development tools as well
+ neovim-developer = let
+ lib = nixpkgs.lib;
+ pythonEnv = legacyPkgs.python3;
+ luacheck = legacyPkgs.luaPackages.luacheck;
+ in
+ neovim-debug.overrideAttrs(oa: {
+ cmakeFlags = oa.cmakeFlags ++ [
+ "-DLUACHECK_PRG=${luacheck}/bin/luacheck"
+ "-DMIN_LOG_LEVEL=0"
+ "-DENABLE_LTO=OFF"
+ "-DUSE_BUNDLED=OFF"
+ # https://github.com/google/sanitizers/wiki/AddressSanitizerFlags
+ # https://clang.llvm.org/docs/AddressSanitizer.html#symbolizing-the-reports
+ "-DCLANG_ASAN_UBSAN=ON"
+ ];
+
+ nativeBuildInputs = oa.nativeBuildInputs ++ (with pkgs; [
+ pythonEnv
+ include-what-you-use # for scripts/check-includes.py
+ jq # jq for scripts/vim-patch.sh -r
+ doxygen
+ ]);
+
+ shellHook = oa.shellHook + ''
+ export NVIM_PYTHON_LOG_LEVEL=DEBUG
+ export NVIM_LOG_FILE=/tmp/nvim.log
+
+ export ASAN_OPTIONS="log_path=./test.log:abort_on_error=1"
+ export UBSAN_OPTIONS=print_stacktrace=1
+ '';
+ });
+ };
+
+ defaultPackage."${system}" = self.packages."${system}".neovim;
+
+ overlay = final: prev: {
+ inherit (self.packages."${system}") neovim neovim-debug;
+ };
+
+ apps."${system}" = let
+ mkApp = pkg: {
+ type = "app";
+ program = pkg + "/bin/nvim";
+ };
+ in {
+ nvim = mkApp self.packages."${system}".neovim;
+ nvim-debug = mkApp self.packages."${system}".neovim-debug;
+ };
+
+ defaultApp."${system}" = self.apps."${system}".nvim;
+
+ devShell."${system}" = self.packages."${system}".neovim-developer;
+ };
+}
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index f306806c96..d04f52de0b 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -9331,6 +9331,13 @@ wincol() The result is a Number, which is the virtual column of the
cursor in the window. This is counting screen cells from the
left side of the window. The leftmost column is one.
+ *windowsversion()*
+windowsversion()
+ The result is a String. For MS-Windows it indicates the OS
+ version. E.g, Windows 10 is "10.0", Windows 8 is "6.2",
+ Windows XP is "5.1". For non-MS-Windows systems the result is
+ an empty string.
+
winheight({nr}) *winheight()*
The result is a Number, which is the height of window {nr}.
{nr} can be the window number or the |window-ID|.
diff --git a/runtime/doc/lsp.txt b/runtime/doc/lsp.txt
index c8a44dfb75..ea9072841c 100644
--- a/runtime/doc/lsp.txt
+++ b/runtime/doc/lsp.txt
@@ -247,7 +247,7 @@ For |lsp-notification|, each |lsp-handler| has this signature: >
of a particular handler.
For an example, see:
- |vim.lsp.diagnostics.on_publish_diagnostics()|
+ |vim.lsp.diagnostic.on_publish_diagnostics()|
To configure a particular |lsp-handler|, see:
|lsp-handler-configuration|
@@ -715,6 +715,15 @@ start_client({config}) *vim.lsp.start_client()*
The following parameters describe fields in the {config}
table.
+>
+
+ -- In attach function for the client, you can do:
+ local custom_attach = function(client)
+ if client.config.flags then
+ client.config.flags.allow_incremental_sync = true
+ end
+ end
+<
Parameters: ~
{root_dir} (required, string) Directory where the
@@ -796,6 +805,11 @@ start_client({config}) *vim.lsp.start_client()*
in the initialize request.
Invalid/empty values will default to
"off"
+ {flags} A table with flags for the client. The
+ current (experimental) flags are:
+ • allow_incremental_sync (bool, default
+ false): Allow using on_line callbacks
+ for lsp
Return: ~
Client id. |vim.lsp.get_client_by_id()| Note: client may
@@ -833,6 +847,12 @@ with({handler}, {override_config}) *vim.lsp.with()*
==============================================================================
Lua module: vim.lsp.buf *lsp-buf*
+ *vim.lsp.buf.add_workspace_folder()*
+add_workspace_folder({workspace_folder})
+ Add the folder at path to the workspace folders. If {path} is
+ not provided, the user will be prompted for a path using
+ |input()|.
+
clear_references() *vim.lsp.buf.clear_references()*
Removes document highlights from current buffer.
@@ -935,6 +955,9 @@ incoming_calls() *vim.lsp.buf.incoming_calls()*
|quickfix| window. If the symbol can resolve to multiple
items, the user can pick one in the |inputlist|.
+list_workspace_folders() *vim.lsp.buf.list_workspace_folders()*
+ List workspace folders.
+
outgoing_calls() *vim.lsp.buf.outgoing_calls()*
Lists all the items that are called by the symbol under the
cursor in the |quickfix| window. If the symbol can resolve to
@@ -961,6 +984,9 @@ range_formatting({options}, {start_pos}, {end_pos})
Parameters: ~
{options} Table with valid `FormattingOptions` entries.
{start_pos} ({number, number}, optional) mark-indexed
+ position. Defaults to the start of the last
+ visual selection.
+ {end_pos} ({number, number}, optional) mark-indexed
position. Defaults to the end of the last
visual selection.
@@ -974,6 +1000,12 @@ references({context}) *vim.lsp.buf.references()*
See also: ~
https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_references
+ *vim.lsp.buf.remove_workspace_folder()*
+remove_workspace_folder({workspace_folder})
+ Remove the folder at path from the workspace folders. If
+ {path} is not provided, the user will be prompted for a path
+ using |input()|.
+
rename({new_name}) *vim.lsp.buf.rename()*
Renames all references to the symbol under the cursor.
@@ -996,19 +1028,6 @@ type_definition() *vim.lsp.buf.type_definition()*
Jumps to the definition of the type of the symbol under the
cursor.
-add_workspace_folder({path}) *vim.lsp.buf.add_workspace_folder()*
- Add the folder at path to the workspace folders. If {path} is
- not provided, the user will be prompted for a path using
- |input()|.
-
-remove_workspace_folder({path}) *vim.lsp.buf.remove_workspace_folder()*
- Remove the folder at path from the workspace folders. If
- {path} is not provided, the user will be prompted for
- a path using |input()|.
-
-list_workspace_folders() *vim.lsp.buf.list_workspace_folders()*
- List all folders in the workspace.
-
workspace_symbol({query}) *vim.lsp.buf.workspace_symbol()*
Lists all symbols in the current workspace in the quickfix
window.
@@ -1062,9 +1081,9 @@ get_count({bufnr}, {severity}, {client_id})
let sl = ''
if luaeval('not vim.tbl_isempty(vim.lsp.buf_get_clients(0))')
let sl.='%#MyStatuslineLSP#E:'
- let sl.='%#MyStatuslineLSPErrors#%{luaeval("vim.lsp.diagnostic.get_count(vim.fn.bufnr('%'), [[Error]])")}'
+ let sl.='%#MyStatuslineLSPErrors#%{luaeval("vim.lsp.diagnostic.get_count(0, [[Error]])")}'
let sl.='%#MyStatuslineLSP# W:'
- let sl.='%#MyStatuslineLSPWarnings#%{luaeval("vim.lsp.diagnostic.get_count(vim.fn.bufnr('%'), [[Warning]])")}'
+ let sl.='%#MyStatuslineLSPWarnings#%{luaeval("vim.lsp.diagnostic.get_count(0, [[Warning]])")}'
else
let sl.='%#MyStatuslineLSPErrors#off'
endif
@@ -1104,7 +1123,7 @@ get_next({opts}) *vim.lsp.diagnostic.get_next()*
Get the previous diagnostic closest to the cursor_position
Parameters: ~
- {opts} table See |vim.lsp.diagnostics.goto_next()|
+ {opts} table See |vim.lsp.diagnostic.goto_next()|
Return: ~
table Next diagnostic
@@ -1114,7 +1133,7 @@ get_next_pos({opts}) *vim.lsp.diagnostic.get_next_pos()*
current buffer.
Parameters: ~
- {opts} table See |vim.lsp.diagnostics.goto_next()|
+ {opts} table See |vim.lsp.diagnostic.goto_next()|
Return: ~
table Next diagnostic position
@@ -1123,7 +1142,7 @@ get_prev({opts}) *vim.lsp.diagnostic.get_prev()*
Get the previous diagnostic closest to the cursor_position
Parameters: ~
- {opts} table See |vim.lsp.diagnostics.goto_next()|
+ {opts} table See |vim.lsp.diagnostic.goto_next()|
Return: ~
table Previous diagnostic
@@ -1133,7 +1152,7 @@ get_prev_pos({opts}) *vim.lsp.diagnostic.get_prev_pos()*
current buffer.
Parameters: ~
- {opts} table See |vim.lsp.diagnostics.goto_next()|
+ {opts} table See |vim.lsp.diagnostic.goto_next()|
Return: ~
table Previous diagnostic position
@@ -1196,7 +1215,7 @@ goto_prev({opts}) *vim.lsp.diagnostic.goto_prev()*
Move to the previous diagnostic
Parameters: ~
- {opts} table See |vim.lsp.diagnostics.goto_next()|
+ {opts} table See |vim.lsp.diagnostic.goto_next()|
*vim.lsp.diagnostic.on_publish_diagnostics()*
on_publish_diagnostics({_}, {_}, {params}, {client_id}, {_}, {config})
@@ -1654,6 +1673,14 @@ make_text_document_params() *vim.lsp.util.make_text_document_params()*
See also: ~
https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocumentIdentifier
+ *vim.lsp.util.make_workspace_params()*
+make_workspace_params({added}, {removed})
+ Create the workspace params
+
+ Parameters: ~
+ {added}
+ {removed}
+
*vim.lsp.util.open_floating_preview()*
open_floating_preview({contents}, {filetype}, {opts})
Shows contents in a floating window.
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua
index f082fe29f2..ed31572abb 100644
--- a/runtime/lua/vim/lsp.lua
+++ b/runtime/lua/vim/lsp.lua
@@ -1,3 +1,5 @@
+local if_nil = vim.F.if_nil
+
local default_handlers = require 'vim.lsp.handlers'
local log = require 'vim.lsp.log'
local lsp_rpc = require 'vim.lsp.rpc'
@@ -226,6 +228,7 @@ local function validate_client_config(config)
on_init = { config.on_init, "f", true };
before_init = { config.before_init, "f", true };
offset_encoding = { config.offset_encoding, "s", true };
+ flags = { config.flags, "t", true };
}
-- TODO(remove-callbacks)
@@ -434,6 +437,17 @@ end
---
--@param trace: "off" | "messages" | "verbose" | nil passed directly to the language
--- server in the initialize request. Invalid/empty values will default to "off"
+--@param flags: A table with flags for the client. The current (experimental) flags are:
+--- - allow_incremental_sync (bool, default false): Allow using on_line callbacks for lsp
+---
+--- <pre>
+--- -- In attach function for the client, you can do:
+--- local custom_attach = function(client)
+--- if client.config.flags then
+--- client.config.flags.allow_incremental_sync = true
+--- end
+--- end
+--- </pre>
---
--@returns Client id. |vim.lsp.get_client_by_id()| Note: client may not be
--- fully initialized. Use `on_init` to do any actions once
@@ -442,6 +456,8 @@ function lsp.start_client(config)
local cleaned_config = validate_client_config(config)
local cmd, cmd_args, offset_encoding = cleaned_config.cmd, cleaned_config.cmd_args, cleaned_config.offset_encoding
+ config.flags = config.flags or {}
+
local client_id = next_client_id()
-- TODO(remove-callbacks)
@@ -799,6 +815,7 @@ do
local size_index = encoding_index[client.offset_encoding]
local length = select(size_index, old_byte_size, old_utf16_size, old_utf32_size)
local lines = nvim_buf_get_lines(bufnr, firstline, new_lastline, true)
+
-- This is necessary because we are specifying the full line including the
-- newline in range. Therefore, we must replace the newline as well.
if #lines > 0 then
@@ -820,6 +837,8 @@ do
end)
local uri = vim.uri_from_bufnr(bufnr)
for_each_buffer_client(bufnr, function(client, _client_id)
+ local allow_incremental_sync = if_nil(client.config.flags.allow_incremental_sync, false)
+
local text_document_did_change = client.resolved_capabilities.text_document_did_change
local changes
if text_document_did_change == protocol.TextDocumentSyncKind.None then
@@ -830,7 +849,7 @@ do
-- is no way to specify the sync capability by the client.
-- See https://github.com/palantir/python-language-server/commit/cfd6675bc10d5e8dbc50fc50f90e4a37b7178821#diff-f68667852a14e9f761f6ebf07ba02fc8 for an example of pyls handling both.
--]=]
- elseif true or text_document_did_change == protocol.TextDocumentSyncKind.Full then
+ elseif not allow_incremental_sync or text_document_did_change == protocol.TextDocumentSyncKind.Full then
changes = full_changes(client)
elseif text_document_did_change == protocol.TextDocumentSyncKind.Incremental then
changes = incremental_changes(client)
diff --git a/runtime/lua/vim/lsp/buf.lua b/runtime/lua/vim/lsp/buf.lua
index a70581478b..00219b6d98 100644
--- a/runtime/lua/vim/lsp/buf.lua
+++ b/runtime/lua/vim/lsp/buf.lua
@@ -149,7 +149,7 @@ end
--@param options Table with valid `FormattingOptions` entries.
--@param start_pos ({number, number}, optional) mark-indexed position.
---Defaults to the start of the last visual selection.
---@param start_pos ({number, number}, optional) mark-indexed position.
+--@param end_pos ({number, number}, optional) mark-indexed position.
---Defaults to the end of the last visual selection.
function M.range_formatting(options, start_pos, end_pos)
validate { options = {options, 't', true} }
@@ -239,6 +239,7 @@ function M.outgoing_calls()
end
--- List workspace folders.
+---
function M.list_workspace_folders()
local workspace_folders = {}
for _, client in ipairs(vim.lsp.buf_get_clients()) do
@@ -249,7 +250,8 @@ function M.list_workspace_folders()
return workspace_folders
end
---- Add a workspace folder.
+--- Add the folder at path to the workspace folders. If {path} is
+--- not provided, the user will be prompted for a path using |input()|.
function M.add_workspace_folder(workspace_folder)
workspace_folder = workspace_folder or npcall(vfn.input, "Workspace Folder: ", vfn.expand('%:p:h'))
vim.api.nvim_command("redraw")
@@ -275,7 +277,9 @@ function M.add_workspace_folder(workspace_folder)
end
end
---- Remove a workspace folder.
+--- Remove the folder at path from the workspace folders. If
+--- {path} is not provided, the user will be prompted for
+--- a path using |input()|.
function M.remove_workspace_folder(workspace_folder)
workspace_folder = workspace_folder or npcall(vfn.input, "Workspace Folder: ", vfn.expand('%:p:h'))
vim.api.nvim_command("redraw")
diff --git a/runtime/lua/vim/lsp/diagnostic.lua b/runtime/lua/vim/lsp/diagnostic.lua
index 27a1f53f89..efca5b53af 100644
--- a/runtime/lua/vim/lsp/diagnostic.lua
+++ b/runtime/lua/vim/lsp/diagnostic.lua
@@ -400,9 +400,9 @@ end
--- let sl = ''
--- if luaeval('not vim.tbl_isempty(vim.lsp.buf_get_clients(0))')
--- let sl.='%#MyStatuslineLSP#E:'
---- let sl.='%#MyStatuslineLSPErrors#%{luaeval("vim.lsp.diagnostic.get_count([[Error]])")}'
+--- let sl.='%#MyStatuslineLSPErrors#%{luaeval("vim.lsp.diagnostic.get_count(0, [[Error]])")}'
--- let sl.='%#MyStatuslineLSP# W:'
---- let sl.='%#MyStatuslineLSPWarnings#%{luaeval("vim.lsp.diagnostic.get_count([[Warning]])")}'
+--- let sl.='%#MyStatuslineLSPWarnings#%{luaeval("vim.lsp.diagnostic.get_count(0, [[Warning]])")}'
--- else
--- let sl.='%#MyStatuslineLSPErrors#off'
--- endif
@@ -510,7 +510,7 @@ end
--- Get the previous diagnostic closest to the cursor_position
---
----@param opts table See |vim.lsp.diagnostics.goto_next()|
+---@param opts table See |vim.lsp.diagnostic.goto_next()|
---@return table Previous diagnostic
function M.get_prev(opts)
opts = opts or {}
@@ -523,7 +523,7 @@ function M.get_prev(opts)
end
--- Return the pos, {row, col}, for the prev diagnostic in the current buffer.
----@param opts table See |vim.lsp.diagnostics.goto_next()|
+---@param opts table See |vim.lsp.diagnostic.goto_next()|
---@return table Previous diagnostic position
function M.get_prev_pos(opts)
return _iter_diagnostic_lines_pos(
@@ -533,7 +533,7 @@ function M.get_prev_pos(opts)
end
--- Move to the previous diagnostic
----@param opts table See |vim.lsp.diagnostics.goto_next()|
+---@param opts table See |vim.lsp.diagnostic.goto_next()|
function M.goto_prev(opts)
return _iter_diagnostic_move_pos(
"DiagnosticPrevious",
@@ -543,7 +543,7 @@ function M.goto_prev(opts)
end
--- Get the previous diagnostic closest to the cursor_position
----@param opts table See |vim.lsp.diagnostics.goto_next()|
+---@param opts table See |vim.lsp.diagnostic.goto_next()|
---@return table Next diagnostic
function M.get_next(opts)
opts = opts or {}
@@ -556,7 +556,7 @@ function M.get_next(opts)
end
--- Return the pos, {row, col}, for the next diagnostic in the current buffer.
----@param opts table See |vim.lsp.diagnostics.goto_next()|
+---@param opts table See |vim.lsp.diagnostic.goto_next()|
---@return table Next diagnostic position
function M.get_next_pos(opts)
return _iter_diagnostic_lines_pos(
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua
index 5804ac6656..3da4dd6219 100644
--- a/runtime/lua/vim/lsp/util.lua
+++ b/runtime/lua/vim/lsp/util.lua
@@ -1022,7 +1022,7 @@ do
--@deprecated
function M.buf_diagnostics_signs(bufnr, diagnostics, client_id)
- warn_once("buf_diagnostics_signs is deprecated. Use 'vim.lsp.diagnostics.set_signs'")
+ warn_once("buf_diagnostics_signs is deprecated. Use 'vim.lsp.diagnostic.set_signs'")
return vim.lsp.diagnostic.set_signs(diagnostics, bufnr, client_id)
end
@@ -1315,6 +1315,9 @@ function M.make_text_document_params()
return { uri = vim.uri_from_bufnr(0) }
end
+--- Create the workspace params
+--@param added
+--@param removed
function M.make_workspace_params(added, removed)
return { event = { added = added; removed = removed; } }
end
diff --git a/runtime/lua/vim/treesitter/language.lua b/runtime/lua/vim/treesitter/language.lua
index a7e36a0b89..d60cd2d0c7 100644
--- a/runtime/lua/vim/treesitter/language.lua
+++ b/runtime/lua/vim/treesitter/language.lua
@@ -8,7 +8,8 @@ local M = {}
--
-- @param lang The language the parser should parse
-- @param path Optionnal path the parser is located at
-function M.require_language(lang, path)
+-- @param silent Don't throw an error if language not found
+function M.require_language(lang, path, silent)
if vim._ts_has_language(lang) then
return true
end
@@ -16,12 +17,23 @@ function M.require_language(lang, path)
local fname = 'parser/' .. lang .. '.*'
local paths = a.nvim_get_runtime_file(fname, false)
if #paths == 0 then
+ if silent then
+ return false
+ end
+
-- TODO(bfredl): help tag?
error("no parser for '"..lang.."' language, see :help treesitter-parsers")
end
path = paths[1]
end
- vim._ts_add_language(path, lang)
+
+ if silent then
+ return pcall(function() vim._ts_add_language(path, lang) end)
+ else
+ vim._ts_add_language(path, lang)
+ end
+
+ return true
end
--- Inspects the provided language.
diff --git a/runtime/lua/vim/treesitter/languagetree.lua b/runtime/lua/vim/treesitter/languagetree.lua
index 885460c9fd..04b5fee256 100644
--- a/runtime/lua/vim/treesitter/languagetree.lua
+++ b/runtime/lua/vim/treesitter/languagetree.lua
@@ -121,23 +121,30 @@ function LanguageTree:parse()
local seen_langs = {}
for lang, injection_ranges in pairs(injections_by_lang) do
- local child = self._children[lang]
+ local has_lang = language.require_language(lang, nil, true)
- if not child then
- child = self:add_child(lang)
- end
+ -- Child language trees should just be ignored if not found, since
+ -- they can depend on the text of a node. Intermediate strings
+ -- would cause errors for unknown parsers.
+ if has_lang then
+ local child = self._children[lang]
- child:set_included_regions(injection_ranges)
+ if not child then
+ child = self:add_child(lang)
+ end
- local _, child_changes = child:parse()
+ child:set_included_regions(injection_ranges)
- -- Propagate any child changes so they are included in the
- -- the change list for the callback.
- if child_changes then
- vim.list_extend(changes, child_changes)
- end
+ local _, child_changes = child:parse()
- seen_langs[lang] = true
+ -- Propagate any child changes so they are included in the
+ -- the change list for the callback.
+ if child_changes then
+ vim.list_extend(changes, child_changes)
+ end
+
+ seen_langs[lang] = true
+ end
end
for lang, _ in pairs(self._children) do
diff --git a/src/nvim/charset.c b/src/nvim/charset.c
index fb158f377a..3e52b3e3ce 100644
--- a/src/nvim/charset.c
+++ b/src/nvim/charset.c
@@ -45,8 +45,6 @@ static bool chartab_initialized = false;
(buf)->b_chartab[(unsigned)(c) >> 6] &= ~(1ull << ((c) & 0x3f))
#define GET_CHARTAB_TAB(chartab, c) \
((chartab)[(unsigned)(c) >> 6] & (1ull << ((c) & 0x3f)))
-#define GET_CHARTAB(buf, c) \
- GET_CHARTAB_TAB((buf)->b_chartab, c)
// Table used below, see init_chartab() for an explanation
static char_u g_chartab[256];
diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua
index 9f1994e299..466f1800c7 100644
--- a/src/nvim/eval.lua
+++ b/src/nvim/eval.lua
@@ -392,6 +392,7 @@ return {
win_screenpos={args=1},
winbufnr={args=1},
wincol={},
+ windowsversion={},
winheight={args=1},
winlayout={args={0, 1}},
winline={},
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c
index 4df935469a..b56034b92d 100644
--- a/src/nvim/eval/funcs.c
+++ b/src/nvim/eval/funcs.c
@@ -95,7 +95,6 @@ PRAGMA_DIAG_POP
static char *e_listarg = N_("E686: Argument of %s must be a List");
-static char *e_stringreq = N_("E928: String required");
static char *e_invalwindow = N_("E957: Invalid window number");
/// Dummy va_list for passing to vim_snprintf
@@ -1877,10 +1876,12 @@ static void f_eventhandler(typval_T *argvars, typval_T *rettv, FunPtr fptr)
*/
static void f_executable(typval_T *argvars, typval_T *rettv, FunPtr fptr)
{
- const char *name = tv_get_string(&argvars[0]);
+ if (tv_check_for_string(&argvars[0]) == FAIL) {
+ return;
+ }
// Check in $PATH and also check directly if there is a directory name
- rettv->vval.v_number = os_can_exe(name, NULL, true);
+ rettv->vval.v_number = os_can_exe(tv_get_string(&argvars[0]), NULL, true);
}
typedef struct {
@@ -1984,10 +1985,13 @@ static void f_execute(typval_T *argvars, typval_T *rettv, FunPtr fptr)
/// "exepath()" function
static void f_exepath(typval_T *argvars, typval_T *rettv, FunPtr fptr)
{
- const char *arg = tv_get_string(&argvars[0]);
+ if (tv_check_for_string(&argvars[0]) == FAIL) {
+ return;
+ }
+
char *path = NULL;
- (void)os_can_exe(arg, &path, true);
+ (void)os_can_exe(tv_get_string(&argvars[0]), &path, true);
rettv->v_type = VAR_STRING;
rettv->vval.v_string = (char_u *)path;
@@ -11213,6 +11217,13 @@ static void f_winwidth(typval_T *argvars, typval_T *rettv, FunPtr fptr)
}
}
+// "windowsversion()" function
+static void f_windowsversion(typval_T *argvars, typval_T *rettv, FunPtr fptr)
+{
+ rettv->v_type = VAR_STRING;
+ rettv->vval.v_string = (char_u *)xstrdup(windowsVersion);
+}
+
/// "wordcount()" function
static void f_wordcount(typval_T *argvars, typval_T *rettv, FunPtr fptr)
{
diff --git a/src/nvim/eval/typval.c b/src/nvim/eval/typval.c
index b62820fecc..02d32a4f86 100644
--- a/src/nvim/eval/typval.c
+++ b/src/nvim/eval/typval.c
@@ -2953,6 +2953,19 @@ float_T tv_get_float(const typval_T *const tv)
return 0;
}
+// Give an error and return FAIL unless "tv" is a non-empty string.
+int tv_check_for_string(const typval_T *const tv)
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_PURE
+{
+ if (tv->v_type != VAR_STRING
+ || tv->vval.v_string == NULL
+ || *tv->vval.v_string == NUL) {
+ EMSG(_(e_stringreq));
+ return FAIL;
+ }
+ return OK;
+}
+
/// Get the string value of a "stringish" VimL object.
///
/// @param[in] tv Object to get value of.
diff --git a/src/nvim/ex_cmds.lua b/src/nvim/ex_cmds.lua
index d62b00fee1..380237c822 100644
--- a/src/nvim/ex_cmds.lua
+++ b/src/nvim/ex_cmds.lua
@@ -29,394 +29,384 @@ local FILES = bit.bor(XFILE, EXTRA)
local WORD1 = bit.bor(EXTRA, NOSPC)
local FILE1 = bit.bor(FILES, NOSPC)
-local ADDR_LINES = 0 -- buffer line numbers
-local ADDR_WINDOWS = 1 -- window number
-local ADDR_ARGUMENTS = 2 -- argument number
-local ADDR_LOADED_BUFFERS = 3 -- buffer number of loaded buffer
-local ADDR_BUFFERS = 4 -- buffer number
-local ADDR_TABS = 5 -- tab page number
-local ADDR_TABS_RELATIVE = 6 -- Tab page that only relative
-local ADDR_QUICKFIX = 7 -- quickfix list entry number
-local ADDR_OTHER = 99 -- something else
-
-- The following table is described in ex_cmds_defs.h file.
return {
{
command='append',
flags=bit.bor(BANG, RANGE, ZEROR, TRLBAR, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_append',
},
{
command='abbreviate',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_abbreviate',
},
{
command='abclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_abclear',
},
{
command='aboveleft',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='all',
flags=bit.bor(BANG, RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_all',
},
{
command='amenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='anoremenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='args',
flags=bit.bor(BANG, FILES, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_args',
},
{
command='argadd',
flags=bit.bor(BANG, RANGE, NOTADR, ZEROR, FILES, TRLBAR),
- addr_type=ADDR_ARGUMENTS,
+ addr_type='ADDR_ARGUMENTS',
func='ex_argadd',
},
{
command='argdelete',
flags=bit.bor(BANG, RANGE, NOTADR, FILES, TRLBAR),
- addr_type=ADDR_ARGUMENTS,
+ addr_type='ADDR_ARGUMENTS',
func='ex_argdelete',
},
{
command='argdo',
flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, NOTADR, DFLALL),
- addr_type=ADDR_ARGUMENTS,
+ addr_type='ADDR_ARGUMENTS',
func='ex_listdo',
},
{
command='argedit',
flags=bit.bor(BANG, NEEDARG, RANGE, NOTADR, ZEROR, FILES, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_ARGUMENTS,
+ addr_type='ADDR_ARGUMENTS',
func='ex_argedit',
},
{
command='argglobal',
flags=bit.bor(BANG, FILES, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_args',
},
{
command='arglocal',
flags=bit.bor(BANG, FILES, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_args',
},
{
command='argument',
flags=bit.bor(BANG, RANGE, NOTADR, COUNT, EXTRA, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_ARGUMENTS,
+ addr_type='ADDR_ARGUMENTS',
func='ex_argument',
},
{
command='ascii',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='do_ascii',
},
{
command='autocmd',
flags=bit.bor(BANG, EXTRA, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_autocmd',
},
{
command='augroup',
flags=bit.bor(BANG, WORD1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_autocmd',
},
{
command='aunmenu',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='buffer',
flags=bit.bor(BANG, RANGE, NOTADR, BUFNAME, BUFUNL, COUNT, EXTRA, EDITCMD, TRLBAR),
- addr_type=ADDR_BUFFERS,
+ addr_type='ADDR_BUFFERS',
func='ex_buffer',
},
{
command='bNext',
flags=bit.bor(BANG, RANGE, NOTADR, COUNT, EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_bprevious',
},
{
command='ball',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_buffer_all',
},
{
command='badd',
flags=bit.bor(NEEDARG, FILE1, EDITCMD, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_edit',
},
{
command='bdelete',
flags=bit.bor(BANG, RANGE, NOTADR, BUFNAME, COUNT, EXTRA, TRLBAR),
- addr_type=ADDR_BUFFERS,
+ addr_type='ADDR_BUFFERS',
func='ex_bunload',
},
{
command='behave',
flags=bit.bor(NEEDARG, WORD1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_behave',
},
{
command='belowright',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='bfirst',
flags=bit.bor(BANG, RANGE, NOTADR, EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_brewind',
},
{
command='blast',
flags=bit.bor(BANG, RANGE, NOTADR, EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_blast',
},
{
command='bmodified',
flags=bit.bor(BANG, RANGE, NOTADR, COUNT, EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_bmodified',
},
{
command='bnext',
flags=bit.bor(BANG, RANGE, NOTADR, COUNT, EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_bnext',
},
{
command='botright',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='bprevious',
flags=bit.bor(BANG, RANGE, NOTADR, COUNT, EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_bprevious',
},
{
command='brewind',
flags=bit.bor(BANG, RANGE, NOTADR, EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_brewind',
},
{
command='break',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_break',
},
{
command='breakadd',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_breakadd',
},
{
command='breakdel',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_breakdel',
},
{
command='breaklist',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_breaklist',
},
{
command='browse',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='buffers',
flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='buflist_list',
},
{
command='bufdo',
flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, NOTADR, DFLALL),
- addr_type=ADDR_BUFFERS,
+ addr_type='ADDR_BUFFERS',
func='ex_listdo',
},
{
command='bunload',
flags=bit.bor(BANG, RANGE, NOTADR, BUFNAME, COUNT, EXTRA, TRLBAR),
- addr_type=ADDR_LOADED_BUFFERS,
+ addr_type='ADDR_LOADED_BUFFERS',
func='ex_bunload',
},
{
command='bwipeout',
flags=bit.bor(BANG, RANGE, NOTADR, BUFNAME, BUFUNL, COUNT, EXTRA, TRLBAR),
- addr_type=ADDR_BUFFERS,
+ addr_type='ADDR_BUFFERS',
func='ex_bunload',
},
{
command='change',
flags=bit.bor(BANG, WHOLEFOLD, RANGE, COUNT, TRLBAR, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_change',
},
{
command='cNext',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cnext',
},
{
command='cNfile',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cnext',
},
{
command='cabbrev',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_abbreviate',
},
{
command='cabclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_abclear',
},
{
command='cabove',
flags=bit.bor(RANGE, TRLBAR),
- addr_type=ADDR_OTHER ,
+ addr_type='ADDR_OTHER ',
func='ex_cbelow',
},
{
command='caddbuffer',
flags=bit.bor(RANGE, NOTADR, WORD1, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cbuffer',
},
{
command='caddexpr',
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cexpr',
},
{
command='caddfile',
flags=bit.bor(TRLBAR, FILE1),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cfile',
},
{
command='call',
flags=bit.bor(RANGE, NEEDARG, EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_call',
},
{
command='catch',
flags=bit.bor(EXTRA, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_catch',
},
{
command='cbuffer',
flags=bit.bor(BANG, RANGE, NOTADR, WORD1, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cbuffer',
},
{
command='cbelow',
flags=bit.bor(RANGE, TRLBAR),
- addr_type=ADDR_OTHER ,
+ addr_type='ADDR_OTHER ',
func='ex_cbelow',
},
{
command='cbottom',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cbottom',
},
{
command='cc',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cc',
},
{
command='cclose',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cclose',
},
{
command='cd',
flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cd',
},
{
command='cdo',
flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, NOTADR, DFLALL),
- addr_type=ADDR_QUICKFIX,
+ addr_type='ADDR_QUICKFIX',
func='ex_listdo',
},
{
command='center',
flags=bit.bor(TRLBAR, RANGE, WHOLEFOLD, EXTRA, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_align',
},
{
command='cexpr',
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cexpr',
},
{
command='cfile',
flags=bit.bor(TRLBAR, FILE1, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cfile',
},
-- Even though 'cfdo' is alphabetically lower than 'cfile', it is after
@@ -424,979 +414,979 @@ return {
{
command='cfdo',
flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, NOTADR, DFLALL),
- addr_type=ADDR_QUICKFIX,
+ addr_type='ADDR_QUICKFIX',
func='ex_listdo',
},
{
command='cfirst',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cc',
},
{
command='cgetfile',
flags=bit.bor(TRLBAR, FILE1),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cfile',
},
{
command='cgetbuffer',
flags=bit.bor(RANGE, NOTADR, WORD1, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cbuffer',
},
{
command='cgetexpr',
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cexpr',
},
{
command='chdir',
flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cd',
},
{
command='changes',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_changes',
},
{
command='checkhealth',
flags=bit.bor(EXTRA, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_checkhealth',
},
{
command='checkpath',
flags=bit.bor(TRLBAR, BANG, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_checkpath',
},
{
command='checktime',
flags=bit.bor(RANGE, NOTADR, BUFNAME, COUNT, EXTRA, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_checktime',
},
{
command='chistory',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='qf_history',
},
{
command='clist',
flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='qf_list',
},
{
command='clast',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cc',
},
{
command='close',
flags=bit.bor(BANG, RANGE, NOTADR, COUNT, TRLBAR, CMDWIN),
- addr_type=ADDR_WINDOWS,
+ addr_type='ADDR_WINDOWS',
func='ex_close',
},
{
command='clearjumps',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_clearjumps',
},
{
command='cmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='cmapclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mapclear',
},
{
command='cmenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='cnext',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cnext',
},
{
command='cnewer',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='qf_age',
},
{
command='cnfile',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cnext',
},
{
command='cnoremap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='cnoreabbrev',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_abbreviate',
},
{
command='cnoremenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='copy',
flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_copymove',
},
{
command='colder',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='qf_age',
},
{
command='colorscheme',
flags=bit.bor(WORD1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_colorscheme',
},
{
command='command',
flags=bit.bor(EXTRA, BANG, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_command',
},
{
command='comclear',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_comclear',
},
{
command='compiler',
flags=bit.bor(BANG, TRLBAR, WORD1, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_compiler',
},
{
command='continue',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_continue',
},
{
command='confirm',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='const',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_const',
},
{
command='copen',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_copen',
},
{
command='cprevious',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cnext',
},
{
command='cpfile',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cnext',
},
{
command='cquit',
flags=bit.bor(RANGE, NOTADR, COUNT, ZEROR, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cquit',
},
{
command='crewind',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cc',
},
{
command='cscope',
flags=bit.bor(EXTRA, NOTRLCOM, XFILE),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cscope',
},
{
command='cstag',
flags=bit.bor(BANG, TRLBAR, WORD1),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cstag',
},
{
command='cunmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_unmap',
},
{
command='cunabbrev',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_abbreviate',
},
{
command='cunmenu',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='cwindow',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cwindow',
},
{
command='delete',
flags=bit.bor(RANGE, WHOLEFOLD, REGSTR, COUNT, TRLBAR, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_operators',
},
{
command='delmarks',
flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_delmarks',
},
{
command='debug',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_debug',
},
{
command='debuggreedy',
flags=bit.bor(RANGE, NOTADR, ZEROR, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_debuggreedy',
},
{
command='delcommand',
flags=bit.bor(BANG, NEEDARG, WORD1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_delcommand',
},
{
command='delfunction',
flags=bit.bor(BANG, NEEDARG, WORD1, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_delfunction',
},
{
command='display',
flags=bit.bor(EXTRA, NOTRLCOM, TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_display',
},
{
command='diffupdate',
flags=bit.bor(BANG, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_diffupdate',
},
{
command='diffget',
flags=bit.bor(RANGE, EXTRA, TRLBAR, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_diffgetput',
},
{
command='diffoff',
flags=bit.bor(BANG, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_diffoff',
},
{
command='diffpatch',
flags=bit.bor(EXTRA, FILE1, TRLBAR, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_diffpatch',
},
{
command='diffput',
flags=bit.bor(RANGE, EXTRA, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_diffgetput',
},
{
command='diffsplit',
flags=bit.bor(EXTRA, FILE1, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_diffsplit',
},
{
command='diffthis',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_diffthis',
},
{
command='digraphs',
flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_digraphs',
},
{
command='djump',
flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_findpat',
},
{
command='dlist',
flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_findpat',
},
{
command='doautocmd',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_doautocmd',
},
{
command='doautoall',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_doautoall',
},
{
command='drop',
flags=bit.bor(FILES, EDITCMD, NEEDARG, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_drop',
},
{
command='dsearch',
flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_findpat',
},
{
command='dsplit',
flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_findpat',
},
{
command='edit',
flags=bit.bor(BANG, FILE1, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_edit',
},
{
command='earlier',
flags=bit.bor(TRLBAR, EXTRA, NOSPC, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_later',
},
{
command='echo',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_echo',
},
{
command='echoerr',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_execute',
},
{
command='echohl',
flags=bit.bor(EXTRA, TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_echohl',
},
{
command='echomsg',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_execute',
},
{
command='echon',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_echo',
},
{
command='else',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_else',
},
{
command='elseif',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_else',
},
{
command='emenu',
flags=bit.bor(NEEDARG, EXTRA, TRLBAR, NOTRLCOM, RANGE, NOTADR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_emenu',
},
{
command='endif',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_endif',
},
{
command='endfunction',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_endfunction',
},
{
command='endfor',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_endwhile',
},
{
command='endtry',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_endtry',
},
{
command='endwhile',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_endwhile',
},
{
command='enew',
flags=bit.bor(BANG, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_edit',
},
{
command='ex',
flags=bit.bor(BANG, FILE1, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_edit',
},
{
command='execute',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_execute',
},
{
command='exit',
flags=bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_exit',
},
{
command='exusage',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_exusage',
},
{
command='file',
flags=bit.bor(RANGE, NOTADR, ZEROR, BANG, FILE1, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_file',
},
{
command='files',
flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='buflist_list',
},
{
command='filetype',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_filetype',
},
{
command='filter',
flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='find',
flags=bit.bor(RANGE, NOTADR, BANG, FILE1, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_find',
},
{
command='finally',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_finally',
},
{
command='finish',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_finish',
},
{
command='first',
flags=bit.bor(EXTRA, BANG, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_rewind',
},
{
command='fold',
flags=bit.bor(RANGE, WHOLEFOLD, TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_fold',
},
{
command='foldclose',
flags=bit.bor(RANGE, BANG, WHOLEFOLD, TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_foldopen',
},
{
command='folddoopen',
flags=bit.bor(RANGE, DFLALL, NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_folddo',
},
{
command='folddoclosed',
flags=bit.bor(RANGE, DFLALL, NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_folddo',
},
{
command='foldopen',
flags=bit.bor(RANGE, BANG, WHOLEFOLD, TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_foldopen',
},
{
command='for',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_while',
},
{
command='function',
flags=bit.bor(EXTRA, BANG, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_function',
},
{
command='global',
flags=bit.bor(RANGE, WHOLEFOLD, BANG, EXTRA, DFLALL, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_global',
},
{
command='goto',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_goto',
},
{
command='grep',
flags=bit.bor(RANGE, NOTADR, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_make',
},
{
command='grepadd',
flags=bit.bor(RANGE, NOTADR, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_make',
},
{
command='gui',
flags=bit.bor(BANG, FILES, EDITCMD, ARGOPT, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_nogui',
},
{
command='gvim',
flags=bit.bor(BANG, FILES, EDITCMD, ARGOPT, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_nogui',
},
{
command='help',
flags=bit.bor(BANG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_help',
},
{
command='helpclose',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_helpclose',
},
{
command='helpgrep',
flags=bit.bor(EXTRA, NOTRLCOM, NEEDARG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_helpgrep',
},
{
command='helptags',
flags=bit.bor(NEEDARG, FILES, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_helptags',
},
{
command='hardcopy',
flags=bit.bor(RANGE, COUNT, EXTRA, TRLBAR, DFLALL, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_hardcopy',
},
{
command='highlight',
flags=bit.bor(BANG, EXTRA, TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_highlight',
},
{
command='hide',
flags=bit.bor(BANG, RANGE, NOTADR, COUNT, EXTRA, TRLBAR),
- addr_type=ADDR_WINDOWS,
+ addr_type='ADDR_WINDOWS',
func='ex_hide',
},
{
command='history',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_history',
},
{
command='insert',
flags=bit.bor(BANG, RANGE, TRLBAR, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_append',
},
{
command='iabbrev',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_abbreviate',
},
{
command='iabclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_abclear',
},
{
command='if',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_if',
},
{
command='ijump',
flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_findpat',
},
{
command='ilist',
flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_findpat',
},
{
command='imap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='imapclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mapclear',
},
{
command='imenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='inoremap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='inoreabbrev',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_abbreviate',
},
{
command='inoremenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='intro',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_intro',
},
{
command='isearch',
flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_findpat',
},
{
command='isplit',
flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_findpat',
},
{
command='iunmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_unmap',
},
{
command='iunabbrev',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_abbreviate',
},
{
command='iunmenu',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='join',
flags=bit.bor(BANG, RANGE, WHOLEFOLD, COUNT, EXFLAGS, TRLBAR, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_join',
},
{
command='jumps',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_jumps',
},
{
command='k',
flags=bit.bor(RANGE, WORD1, TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mark',
},
{
command='keepmarks',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='keepjumps',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='keeppatterns',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='keepalt',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='list',
flags=bit.bor(RANGE, WHOLEFOLD, COUNT, EXFLAGS, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_print',
},
{
command='lNext',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cnext',
},
{
command='lNfile',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cnext',
},
{
command='last',
flags=bit.bor(EXTRA, BANG, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_last',
},
{
command='labove',
flags=bit.bor(RANGE, TRLBAR),
- addr_type=ADDR_OTHER ,
+ addr_type='ADDR_OTHER ',
func='ex_cbelow',
},
{
command='language',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_language',
},
{
command='laddexpr',
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cexpr',
},
{
command='laddbuffer',
flags=bit.bor(RANGE, NOTADR, WORD1, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cbuffer',
},
{
command='laddfile',
flags=bit.bor(TRLBAR, FILE1),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cfile',
},
{
command='later',
flags=bit.bor(TRLBAR, EXTRA, NOSPC, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_later',
},
{
command='lbuffer',
flags=bit.bor(BANG, RANGE, NOTADR, WORD1, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cbuffer',
},
{
command='lbelow',
flags=bit.bor(RANGE, TRLBAR),
- addr_type=ADDR_OTHER ,
+ addr_type='ADDR_OTHER ',
func='ex_cbelow',
},
{
command='lbottom',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cbottom',
},
{
command='lcd',
flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cd',
},
{
command='lchdir',
flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cd',
},
{
command='lclose',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cclose',
},
{
command='lcscope',
flags=bit.bor(EXTRA, NOTRLCOM, XFILE),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cscope',
},
{
command='ldo',
flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, NOTADR, DFLALL),
- addr_type=ADDR_QUICKFIX,
+ addr_type='ADDR_QUICKFIX',
func='ex_listdo',
},
{
command='left',
flags=bit.bor(TRLBAR, RANGE, WHOLEFOLD, EXTRA, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_align',
},
{
command='leftabove',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='let',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_let',
},
{
command='lexpr',
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cexpr',
},
{
command='lfile',
flags=bit.bor(TRLBAR, FILE1, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cfile',
},
-- Even though 'lfdo' is alphabetically lower than 'lfile', it is after
@@ -1404,1899 +1394,1899 @@ return {
{
command='lfdo',
flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, NOTADR, DFLALL),
- addr_type=ADDR_QUICKFIX,
+ addr_type='ADDR_QUICKFIX',
func='ex_listdo',
},
{
command='lfirst',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cc',
},
{
command='lgetfile',
flags=bit.bor(TRLBAR, FILE1),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cfile',
},
{
command='lgetbuffer',
flags=bit.bor(RANGE, NOTADR, WORD1, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cbuffer',
},
{
command='lgetexpr',
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cexpr',
},
{
command='lgrep',
flags=bit.bor(RANGE, NOTADR, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_make',
},
{
command='lgrepadd',
flags=bit.bor(RANGE, NOTADR, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_make',
},
{
command='lhelpgrep',
flags=bit.bor(EXTRA, NOTRLCOM, NEEDARG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_helpgrep',
},
{
command='lhistory',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='qf_history',
},
{
command='ll',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cc',
},
{
command='llast',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cc',
},
{
command='llist',
flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='qf_list',
},
{
command='lmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='lmapclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mapclear',
},
{
command='lmake',
flags=bit.bor(BANG, EXTRA, NOTRLCOM, TRLBAR, XFILE),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_make',
},
{
command='lnoremap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='lnext',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cnext',
},
{
command='lnewer',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='qf_age',
},
{
command='lnfile',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cnext',
},
{
command='loadview',
flags=bit.bor(FILE1, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_loadview',
},
{
command='loadkeymap',
flags=bit.bor(CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_loadkeymap',
},
{
command='lockmarks',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='lockvar',
flags=bit.bor(BANG, EXTRA, NEEDARG, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_lockvar',
},
{
command='lolder',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='qf_age',
},
{
command='lopen',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_copen',
},
{
command='lprevious',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cnext',
},
{
command='lpfile',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cnext',
},
{
command='lrewind',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cc',
},
{
command='ltag',
flags=bit.bor(NOTADR, TRLBAR, BANG, WORD1),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_tag',
},
{
command='lunmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_unmap',
},
{
command='lua',
flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_lua',
},
{
command='luado',
flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_luado',
},
{
command='luafile',
flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_luafile',
},
{
command='lvimgrep',
flags=bit.bor(RANGE, NOTADR, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_vimgrep',
},
{
command='lvimgrepadd',
flags=bit.bor(RANGE, NOTADR, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_vimgrep',
},
{
command='lwindow',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cwindow',
},
{
command='ls',
flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='buflist_list',
},
{
command='move',
flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_copymove',
},
{
command='mark',
flags=bit.bor(RANGE, WORD1, TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mark',
},
{
command='make',
flags=bit.bor(BANG, EXTRA, NOTRLCOM, TRLBAR, XFILE),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_make',
},
{
command='map',
flags=bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='mapclear',
flags=bit.bor(EXTRA, BANG, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mapclear',
},
{
command='marks',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_marks',
},
{
command='match',
flags=bit.bor(RANGE, NOTADR, EXTRA, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_match',
},
{
command='menu',
flags=bit.bor(RANGE, NOTADR, ZEROR, BANG, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='menutranslate',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menutranslate',
},
{
command='messages',
flags=bit.bor(EXTRA, TRLBAR, RANGE, CMDWIN),
- addr_type=ADDR_OTHER,
+ addr_type='ADDR_OTHER',
func='ex_messages',
},
{
command='mkexrc',
flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mkrc',
},
{
command='mksession',
flags=bit.bor(BANG, FILE1, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mkrc',
},
{
command='mkspell',
flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mkspell',
},
{
command='mkvimrc',
flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mkrc',
},
{
command='mkview',
flags=bit.bor(BANG, FILE1, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mkrc',
},
{
command='mode',
flags=bit.bor(WORD1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mode',
},
{
command='mzscheme',
flags=bit.bor(RANGE, EXTRA, DFLALL, NEEDARG, CMDWIN, SBOXOK),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_script_ni',
},
{
command='mzfile',
flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ni',
},
{
command='next',
flags=bit.bor(RANGE, NOTADR, BANG, FILES, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_next',
},
{
command='new',
flags=bit.bor(BANG, FILE1, RANGE, NOTADR, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_splitview',
},
{
command='nmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='nmapclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mapclear',
},
{
command='nmenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='nnoremap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='nnoremenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='noremap',
flags=bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='noautocmd',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='nohlsearch',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_nohlsearch',
},
{
command='noreabbrev',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_abbreviate',
},
{
command='noremenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, BANG, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='noswapfile',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='normal',
flags=bit.bor(RANGE, BANG, EXTRA, NEEDARG, NOTRLCOM, USECTRLV, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_normal',
},
{
command='number',
flags=bit.bor(RANGE, WHOLEFOLD, COUNT, EXFLAGS, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_print',
},
{
command='nunmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_unmap',
},
{
command='nunmenu',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='oldfiles',
flags=bit.bor(BANG, TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_oldfiles',
},
{
command='omap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='omapclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mapclear',
},
{
command='omenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='only',
flags=bit.bor(BANG, NOTADR, RANGE, COUNT, TRLBAR),
- addr_type=ADDR_WINDOWS,
+ addr_type='ADDR_WINDOWS',
func='ex_only',
},
{
command='onoremap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='onoremenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='options',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_options',
},
{
command='ounmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_unmap',
},
{
command='ounmenu',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='ownsyntax',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ownsyntax',
},
{
command='print',
flags=bit.bor(RANGE, WHOLEFOLD, COUNT, EXFLAGS, TRLBAR, CMDWIN, SBOXOK),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_print',
},
{
command='packadd',
flags=bit.bor(BANG, FILE1, NEEDARG, TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_packadd',
},
{
command='packloadall',
flags=bit.bor(BANG, TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_packloadall',
},
{
command='pclose',
flags=bit.bor(BANG, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_pclose',
},
{
command='perl',
flags=bit.bor(RANGE, EXTRA, DFLALL, NEEDARG, SBOXOK, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_perl',
},
{
command='perldo',
flags=bit.bor(RANGE, EXTRA, DFLALL, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_perldo',
},
{
command='perlfile',
flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_perlfile',
},
{
command='pedit',
flags=bit.bor(BANG, FILE1, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_pedit',
},
{
command='pop',
flags=bit.bor(RANGE, NOTADR, BANG, COUNT, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_tag',
},
{
command='popup',
flags=bit.bor(NEEDARG, EXTRA, BANG, TRLBAR, NOTRLCOM, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ni',
},
{
command='ppop',
flags=bit.bor(RANGE, NOTADR, BANG, COUNT, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ptag',
},
{
command='preserve',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_preserve',
},
{
command='previous',
flags=bit.bor(EXTRA, RANGE, NOTADR, COUNT, BANG, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_previous',
},
{
command='profile',
flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_profile',
},
{
command='profdel',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_breakdel',
},
{
command='psearch',
flags=bit.bor(BANG, RANGE, WHOLEFOLD, DFLALL, EXTRA),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_psearch',
},
{
command='ptag',
flags=bit.bor(RANGE, NOTADR, BANG, WORD1, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ptag',
},
{
command='ptNext',
flags=bit.bor(RANGE, NOTADR, BANG, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ptag',
},
{
command='ptfirst',
flags=bit.bor(RANGE, NOTADR, BANG, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ptag',
},
{
command='ptjump',
flags=bit.bor(BANG, TRLBAR, WORD1),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ptag',
},
{
command='ptlast',
flags=bit.bor(BANG, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ptag',
},
{
command='ptnext',
flags=bit.bor(RANGE, NOTADR, BANG, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ptag',
},
{
command='ptprevious',
flags=bit.bor(RANGE, NOTADR, BANG, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ptag',
},
{
command='ptrewind',
flags=bit.bor(RANGE, NOTADR, BANG, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ptag',
},
{
command='ptselect',
flags=bit.bor(BANG, TRLBAR, WORD1),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ptag',
},
{
command='put',
flags=bit.bor(RANGE, WHOLEFOLD, BANG, REGSTR, TRLBAR, ZEROR, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_put',
},
{
command='pwd',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_pwd',
},
{
command='python',
flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_python',
},
{
command='pydo',
flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_pydo',
},
{
command='pyfile',
flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_pyfile',
},
{
command='py3',
flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_python3',
},
{
command='py3do',
flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_pydo3',
},
{
command='python3',
flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_python3',
},
{
command='py3file',
flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_py3file',
},
{
command='pyx',
flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_pyx',
},
{
command='pyxdo',
flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_pyxdo',
},
{
command='pythonx',
flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_pyx',
},
{
command='pyxfile',
flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_pyxfile',
},
{
command='quit',
flags=bit.bor(BANG, RANGE, COUNT, NOTADR, TRLBAR, CMDWIN),
- addr_type=ADDR_WINDOWS,
+ addr_type='ADDR_WINDOWS',
func='ex_quit',
},
{
command='quitall',
flags=bit.bor(BANG, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_quit_all',
},
{
command='qall',
flags=bit.bor(BANG, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_quit_all',
},
{
command='read',
flags=bit.bor(BANG, RANGE, WHOLEFOLD, FILE1, ARGOPT, TRLBAR, ZEROR, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_read',
},
{
command='recover',
flags=bit.bor(BANG, FILE1, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_recover',
},
{
command='redo',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_redo',
},
{
command='redir',
flags=bit.bor(BANG, FILES, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_redir',
},
{
command='redraw',
flags=bit.bor(BANG, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_redraw',
},
{
command='redrawstatus',
flags=bit.bor(BANG, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_redrawstatus',
},
{
command='redrawtabline',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_redrawtabline',
},
{
command='registers',
flags=bit.bor(EXTRA, NOTRLCOM, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_display',
},
{
command='resize',
flags=bit.bor(RANGE, NOTADR, TRLBAR, WORD1, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_resize',
},
{
command='retab',
flags=bit.bor(TRLBAR, RANGE, WHOLEFOLD, DFLALL, BANG, WORD1, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_retab',
},
{
command='return',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_return',
},
{
command='rewind',
flags=bit.bor(EXTRA, BANG, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_rewind',
},
{
command='right',
flags=bit.bor(TRLBAR, RANGE, WHOLEFOLD, EXTRA, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_align',
},
{
command='rightbelow',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='rshada',
flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_shada',
},
{
command='runtime',
flags=bit.bor(BANG, NEEDARG, FILES, TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_runtime',
},
{
command='rundo',
flags=bit.bor(NEEDARG, FILE1),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_rundo',
},
{
command='ruby',
flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ruby',
},
{
command='rubydo',
flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_rubydo',
},
{
command='rubyfile',
flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, RESTRICT),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_rubyfile',
},
{
command='rviminfo',
flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_shada',
},
{
command='substitute',
flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_substitute',
},
{
command='sNext',
flags=bit.bor(EXTRA, RANGE, NOTADR, COUNT, BANG, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_previous',
},
{
command='sargument',
flags=bit.bor(BANG, RANGE, NOTADR, COUNT, EXTRA, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_ARGUMENTS,
+ addr_type='ADDR_ARGUMENTS',
func='ex_argument',
},
{
command='sall',
flags=bit.bor(BANG, RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_all',
},
{
command='sandbox',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='saveas',
flags=bit.bor(BANG, DFLALL, FILE1, ARGOPT, CMDWIN, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_write',
},
{
command='sbuffer',
flags=bit.bor(BANG, RANGE, NOTADR, BUFNAME, BUFUNL, COUNT, EXTRA, EDITCMD, TRLBAR),
- addr_type=ADDR_BUFFERS,
+ addr_type='ADDR_BUFFERS',
func='ex_buffer',
},
{
command='sbNext',
flags=bit.bor(RANGE, NOTADR, COUNT, EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_bprevious',
},
{
command='sball',
flags=bit.bor(RANGE, NOTADR, COUNT, EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_buffer_all',
},
{
command='sbfirst',
flags=bit.bor(EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_brewind',
},
{
command='sblast',
flags=bit.bor(EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_blast',
},
{
command='sbmodified',
flags=bit.bor(RANGE, NOTADR, COUNT, EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_bmodified',
},
{
command='sbnext',
flags=bit.bor(RANGE, NOTADR, COUNT, EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_bnext',
},
{
command='sbprevious',
flags=bit.bor(RANGE, NOTADR, COUNT, EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_bprevious',
},
{
command='sbrewind',
flags=bit.bor(EDITCMD, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_brewind',
},
{
command='scriptnames',
flags=bit.bor(BANG, RANGE, NOTADR, COUNT, TRLBAR, CMDWIN),
- addr_type=ADDR_OTHER,
+ addr_type='ADDR_OTHER',
func='ex_scriptnames',
},
{
command='scriptencoding',
flags=bit.bor(WORD1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_scriptencoding',
},
{
command='scscope',
flags=bit.bor(EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_scscope',
},
{
command='set',
flags=bit.bor(TRLBAR, EXTRA, CMDWIN, SBOXOK),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_set',
},
{
command='setfiletype',
flags=bit.bor(TRLBAR, EXTRA, NEEDARG, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_setfiletype',
},
{
command='setglobal',
flags=bit.bor(TRLBAR, EXTRA, CMDWIN, SBOXOK),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_set',
},
{
command='setlocal',
flags=bit.bor(TRLBAR, EXTRA, CMDWIN, SBOXOK),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_set',
},
{
command='sfind',
flags=bit.bor(BANG, FILE1, RANGE, NOTADR, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_splitview',
},
{
command='sfirst',
flags=bit.bor(EXTRA, BANG, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_rewind',
},
{
command='simalt',
flags=bit.bor(NEEDARG, WORD1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ni',
},
{
command='sign',
flags=bit.bor(NEEDARG, RANGE, NOTADR, EXTRA, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_sign',
},
{
command='silent',
flags=bit.bor(NEEDARG, EXTRA, BANG, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='sleep',
flags=bit.bor(RANGE, NOTADR, COUNT, EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_sleep',
},
{
command='slast',
flags=bit.bor(EXTRA, BANG, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_last',
},
{
command='smagic',
flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_submagic',
},
{
command='smap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='smapclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mapclear',
},
{
command='smenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='snext',
flags=bit.bor(RANGE, NOTADR, BANG, FILES, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_next',
},
{
command='snomagic',
flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_submagic',
},
{
command='snoremap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='snoremenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='source',
flags=bit.bor(BANG, FILE1, TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_source',
},
{
command='sort',
flags=bit.bor(RANGE, DFLALL, WHOLEFOLD, BANG, EXTRA, NOTRLCOM, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_sort',
},
{
command='split',
flags=bit.bor(BANG, FILE1, RANGE, NOTADR, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_splitview',
},
{
command='spellgood',
flags=bit.bor(BANG, RANGE, NOTADR, NEEDARG, EXTRA, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_spell',
},
{
command='spelldump',
flags=bit.bor(BANG, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_spelldump',
},
{
command='spellinfo',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_spellinfo',
},
{
command='spellrepall',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_spellrepall',
},
{
command='spellundo',
flags=bit.bor(BANG, RANGE, NOTADR, NEEDARG, EXTRA, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_spell',
},
{
command='spellwrong',
flags=bit.bor(BANG, RANGE, NOTADR, NEEDARG, EXTRA, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_spell',
},
{
command='sprevious',
flags=bit.bor(EXTRA, RANGE, NOTADR, COUNT, BANG, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_previous',
},
{
command='srewind',
flags=bit.bor(EXTRA, BANG, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_rewind',
},
{
command='stop',
flags=bit.bor(TRLBAR, BANG, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_stop',
},
{
command='stag',
flags=bit.bor(RANGE, NOTADR, BANG, WORD1, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_stag',
},
{
command='startinsert',
flags=bit.bor(BANG, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_startinsert',
},
{
command='startgreplace',
flags=bit.bor(BANG, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_startinsert',
},
{
command='startreplace',
flags=bit.bor(BANG, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_startinsert',
},
{
command='stopinsert',
flags=bit.bor(BANG, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_stopinsert',
},
{
command='stjump',
flags=bit.bor(BANG, TRLBAR, WORD1),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_stag',
},
{
command='stselect',
flags=bit.bor(BANG, TRLBAR, WORD1),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_stag',
},
{
command='sunhide',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_buffer_all',
},
{
command='sunmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_unmap',
},
{
command='sunmenu',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='suspend',
flags=bit.bor(TRLBAR, BANG, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_stop',
},
{
command='sview',
flags=bit.bor(BANG, FILE1, RANGE, NOTADR, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_splitview',
},
{
command='swapname',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_swapname',
},
{
command='syntax',
flags=bit.bor(EXTRA, NOTRLCOM, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_syntax',
},
{
command='syntime',
flags=bit.bor(NEEDARG, WORD1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_syntime',
},
{
command='syncbind',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_syncbind',
},
{
command='t',
flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_copymove',
},
{
command='tcd',
flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cd',
},
{
command='tchdir',
flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_cd',
},
{
command='tNext',
flags=bit.bor(RANGE, NOTADR, BANG, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_tag',
},
{
command='tag',
flags=bit.bor(RANGE, NOTADR, BANG, WORD1, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_tag',
},
{
command='tags',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='do_tags',
},
{
command='tab',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_TABS,
+ addr_type='ADDR_TABS',
func='ex_wrongmodifier',
},
{
command='tabclose',
flags=bit.bor(BANG, RANGE, NOTADR, ZEROR, EXTRA, NOSPC, TRLBAR, CMDWIN),
- addr_type=ADDR_TABS,
+ addr_type='ADDR_TABS',
func='ex_tabclose',
},
{
command='tabdo',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, RANGE, NOTADR, DFLALL),
- addr_type=ADDR_TABS,
+ addr_type='ADDR_TABS',
func='ex_listdo',
},
{
command='tabedit',
flags=bit.bor(BANG, FILE1, RANGE, NOTADR, ZEROR, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_TABS,
+ addr_type='ADDR_TABS',
func='ex_splitview',
},
{
command='tabfind',
flags=bit.bor(BANG, FILE1, RANGE, NOTADR, ZEROR, EDITCMD, ARGOPT, NEEDARG, TRLBAR),
- addr_type=ADDR_TABS,
+ addr_type='ADDR_TABS',
func='ex_splitview',
},
{
command='tabfirst',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_TABS,
+ addr_type='ADDR_TABS',
func='ex_tabnext',
},
{
command='tabmove',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, NOSPC, TRLBAR),
- addr_type=ADDR_TABS,
+ addr_type='ADDR_TABS',
func='ex_tabmove',
},
{
command='tablast',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_TABS,
+ addr_type='ADDR_TABS',
func='ex_tabnext',
},
{
command='tabnext',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, NOSPC, TRLBAR),
- addr_type=ADDR_TABS,
+ addr_type='ADDR_TABS',
func='ex_tabnext',
},
{
command='tabnew',
flags=bit.bor(BANG, FILE1, RANGE, NOTADR, ZEROR, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_TABS,
+ addr_type='ADDR_TABS',
func='ex_splitview',
},
{
command='tabonly',
flags=bit.bor(BANG, RANGE, NOTADR, ZEROR, EXTRA, NOSPC, TRLBAR, CMDWIN),
- addr_type=ADDR_TABS,
+ addr_type='ADDR_TABS',
func='ex_tabonly',
},
{
command='tabprevious',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, NOSPC, TRLBAR),
- addr_type=ADDR_TABS_RELATIVE,
+ addr_type='ADDR_TABS_RELATIVE',
func='ex_tabnext',
},
{
command='tabNext',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, NOSPC, TRLBAR),
- addr_type=ADDR_TABS_RELATIVE,
+ addr_type='ADDR_TABS_RELATIVE',
func='ex_tabnext',
},
{
command='tabrewind',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_TABS,
+ addr_type='ADDR_TABS',
func='ex_tabnext',
},
{
command='tabs',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type=ADDR_TABS,
+ addr_type='ADDR_TABS',
func='ex_tabs',
},
{
command='tcl',
flags=bit.bor(RANGE,EXTRA,NEEDARG,CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_script_ni',
},
{
command='tcldo',
flags=bit.bor(RANGE,DFLALL,EXTRA,NEEDARG,CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ni',
},
{
command='tclfile',
flags=bit.bor(RANGE,FILE1,NEEDARG,CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ni',
},
{
command='terminal',
flags=bit.bor(BANG, FILES, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_terminal',
},
{
command='tfirst',
flags=bit.bor(RANGE, NOTADR, BANG, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_tag',
},
{
command='throw',
flags=bit.bor(EXTRA, NEEDARG, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_throw',
},
{
command='tjump',
flags=bit.bor(BANG, TRLBAR, WORD1),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_tag',
},
{
command='tlast',
flags=bit.bor(BANG, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_tag',
},
{
command='tmenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='tmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='tmapclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mapclear',
},
{
command='tnext',
flags=bit.bor(RANGE, NOTADR, BANG, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_tag',
},
{
command='tnoremap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='topleft',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='tprevious',
flags=bit.bor(RANGE, NOTADR, BANG, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_tag',
},
{
command='trewind',
flags=bit.bor(RANGE, NOTADR, BANG, TRLBAR, ZEROR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_tag',
},
{
command='try',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_try',
},
{
command='tselect',
flags=bit.bor(BANG, TRLBAR, WORD1),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_tag',
},
{
command='tunmenu',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='tunmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_unmap',
},
{
command='undo',
flags=bit.bor(RANGE, NOTADR, COUNT, ZEROR, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_undo',
},
{
command='undojoin',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_undojoin',
},
{
command='undolist',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_undolist',
},
{
command='unabbreviate',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_abbreviate',
},
{
command='unhide',
flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_buffer_all',
},
{
command='unlet',
flags=bit.bor(BANG, EXTRA, NEEDARG, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_unlet',
},
{
command='unlockvar',
flags=bit.bor(BANG, EXTRA, NEEDARG, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_lockvar',
},
{
command='unmap',
flags=bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_unmap',
},
{
command='unmenu',
flags=bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='unsilent',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='update',
flags=bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_update',
},
{
command='vglobal',
flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, DFLALL, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_global',
},
{
command='version',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_version',
},
{
command='verbose',
flags=bit.bor(NEEDARG, RANGE, NOTADR, EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='vertical',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wrongmodifier',
},
{
command='visual',
flags=bit.bor(BANG, FILE1, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_edit',
},
{
command='view',
flags=bit.bor(BANG, FILE1, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_edit',
},
{
command='vimgrep',
flags=bit.bor(RANGE, NOTADR, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_vimgrep',
},
{
command='vimgrepadd',
flags=bit.bor(RANGE, NOTADR, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_vimgrep',
},
{
command='viusage',
flags=bit.bor(TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_viusage',
},
{
command='vmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='vmapclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mapclear',
},
{
command='vmenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='vnoremap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='vnew',
flags=bit.bor(BANG, FILE1, RANGE, NOTADR, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_splitview',
},
{
command='vnoremenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='vsplit',
flags=bit.bor(BANG, FILE1, RANGE, NOTADR, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_splitview',
},
{
command='vunmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_unmap',
},
{
command='vunmenu',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='write',
flags=bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_write',
},
{
command='wNext',
flags=bit.bor(RANGE, WHOLEFOLD, NOTADR, BANG, FILE1, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wnext',
},
{
command='wall',
flags=bit.bor(BANG, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='do_wqall',
},
{
command='while',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_while',
},
{
command='winsize',
flags=bit.bor(EXTRA, NEEDARG, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_winsize',
},
{
command='wincmd',
flags=bit.bor(NEEDARG, WORD1, RANGE, NOTADR, CMDWIN),
- addr_type=ADDR_WINDOWS,
+ addr_type='ADDR_WINDOWS',
func='ex_wincmd',
},
{
command='windo',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, RANGE, NOTADR, DFLALL),
- addr_type=ADDR_WINDOWS,
+ addr_type='ADDR_WINDOWS',
func='ex_listdo',
},
{
command='winpos',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_ni',
},
{
command='wnext',
flags=bit.bor(RANGE, NOTADR, BANG, FILE1, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wnext',
},
{
command='wprevious',
flags=bit.bor(RANGE, NOTADR, BANG, FILE1, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wnext',
},
{
command='wq',
flags=bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_exit',
},
{
command='wqall',
flags=bit.bor(BANG, FILE1, ARGOPT, DFLALL, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='do_wqall',
},
{
command='wshada',
flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_shada',
},
{
command='wundo',
flags=bit.bor(BANG, NEEDARG, FILE1),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_wundo',
},
{
command='wviminfo',
flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_shada',
},
{
command='xit',
flags=bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_exit',
},
{
command='xall',
flags=bit.bor(BANG, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='do_wqall',
},
{
command='xmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='xmapclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_mapclear',
},
{
command='xmenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='xnoremap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_map',
},
{
command='xnoremenu',
flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='xunmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_unmap',
},
{
command='xunmenu',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_menu',
},
{
command='yank',
flags=bit.bor(RANGE, WHOLEFOLD, REGSTR, COUNT, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_operators',
},
{
command='z',
flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, EXFLAGS, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_z',
},
{
command='!',
enum='CMD_bang',
flags=bit.bor(RANGE, WHOLEFOLD, BANG, FILES, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_bang',
},
{
command='#',
enum='CMD_pound',
flags=bit.bor(RANGE, WHOLEFOLD, COUNT, EXFLAGS, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_print',
},
{
command='&',
enum='CMD_and',
flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_substitute',
},
{
command='<',
enum='CMD_lshift',
flags=bit.bor(RANGE, WHOLEFOLD, COUNT, EXFLAGS, TRLBAR, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_operators',
},
{
command='=',
enum='CMD_equal',
flags=bit.bor(RANGE, TRLBAR, DFLALL, EXFLAGS, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_equal',
},
{
command='>',
enum='CMD_rshift',
flags=bit.bor(RANGE, WHOLEFOLD, COUNT, EXFLAGS, TRLBAR, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_operators',
},
{
command='@',
enum='CMD_at',
flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_at',
},
{
command='Next',
flags=bit.bor(EXTRA, RANGE, NOTADR, COUNT, BANG, EDITCMD, ARGOPT, TRLBAR),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_previous',
},
{
command='~',
enum='CMD_tilde',
flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, MODIFY),
- addr_type=ADDR_LINES,
+ addr_type='ADDR_LINES',
func='ex_substitute',
},
}
diff --git a/src/nvim/ex_cmds_defs.h b/src/nvim/ex_cmds_defs.h
index 21db3936b8..5613ae4b8c 100644
--- a/src/nvim/ex_cmds_defs.h
+++ b/src/nvim/ex_cmds_defs.h
@@ -67,15 +67,18 @@
#define FILE1 (FILES | NOSPC) // 1 file allowed, defaults to current file
// values for cmd_addr_type
-#define ADDR_LINES 0
-#define ADDR_WINDOWS 1
-#define ADDR_ARGUMENTS 2
-#define ADDR_LOADED_BUFFERS 3
-#define ADDR_BUFFERS 4
-#define ADDR_TABS 5
-#define ADDR_TABS_RELATIVE 6 // Tab page that only relative
-#define ADDR_QUICKFIX 7
-#define ADDR_OTHER 99
+typedef enum {
+ ADDR_LINES, // buffer line numbers
+ ADDR_WINDOWS, // window number
+ ADDR_ARGUMENTS, // argument number
+ ADDR_LOADED_BUFFERS, // buffer number of loaded buffer
+ ADDR_BUFFERS, // buffer number
+ ADDR_TABS, // tab page number
+ ADDR_TABS_RELATIVE, // Tab page that only relative
+ ADDR_QUICKFIX, // quickfix list entry number
+ ADDR_OTHER, // something else
+ ADDR_NONE // no range used
+} cmd_addr_T;
typedef struct exarg exarg_T;
@@ -93,7 +96,7 @@ typedef struct cmdname {
char_u *cmd_name; ///< Name of the command.
ex_func_T cmd_func; ///< Function with implementation of this command.
uint32_t cmd_argt; ///< Relevant flags from the declared above.
- int cmd_addr_type; ///< Flag for address type
+ cmd_addr_T cmd_addr_type; ///< Flag for address type
} CommandDefinition;
// A list used for saving values of "emsg_silent". Used by ex_try() to save the
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 0ffe67a4db..a5eccc12b9 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -85,7 +85,7 @@ typedef struct ucmd {
char_u *uc_rep; // The command's replacement string
long uc_def; // The default value for a range/count
int uc_compl; // completion type
- int uc_addr_type; // The command's address type
+ cmd_addr_T uc_addr_type; // The command's address type
sctx_T uc_script_ctx; // SCTX where the command was defined
char_u *uc_compl_arg; // completion argument if any
} ucmd_T;
@@ -1734,6 +1734,9 @@ static char_u * do_one_cmd(char_u **cmdlinep,
ea.line2 = 1;
}
break;
+ case ADDR_NONE:
+ IEMSG(_("INTERNAL: Cannot use DFLALL with ADDR_NONE"));
+ break;
}
}
@@ -2347,6 +2350,9 @@ int parse_cmd_address(exarg_T *eap, char_u **errormsg, bool silent)
case ADDR_QUICKFIX:
eap->line2 = qf_get_cur_valid_idx(eap);
break;
+ case ADDR_NONE:
+ // Will give an error later if a range is found.
+ break;
}
eap->cmd = skipwhite(eap->cmd);
lnum = get_address(eap, &eap->cmd, eap->addr_type, eap->skip, silent,
@@ -2412,6 +2418,9 @@ int parse_cmd_address(exarg_T *eap, char_u **errormsg, bool silent)
eap->line2 = 1;
}
break;
+ case ADDR_NONE:
+ // Will give an error later if a range is found.
+ break;
}
eap->addr_count++;
} else if (*eap->cmd == '*') {
@@ -3698,12 +3707,14 @@ char_u *skip_range(
// Return MAXLNUM when no Ex address was found.
static linenr_T get_address(exarg_T *eap,
char_u **ptr,
- int addr_type, // flag: one of ADDR_LINES, ...
+ cmd_addr_T addr_type_arg,
int skip, // only skip the address, don't use it
bool silent, // no errors or side effects
int to_other_file, // flag: may jump to other file
int address_count) // 1 for first, >1 after comma
+ FUNC_ATTR_NONNULL_ALL
{
+ const int addr_type = addr_type_arg;
int c;
int i;
long n;
@@ -3737,6 +3748,7 @@ static linenr_T get_address(exarg_T *eap,
lnum = CURRENT_TAB_NR;
break;
case ADDR_TABS_RELATIVE:
+ case ADDR_NONE:
EMSG(_(e_invrange));
cmd = NULL;
goto error;
@@ -3776,6 +3788,7 @@ static linenr_T get_address(exarg_T *eap,
lnum = LAST_TAB_NR;
break;
case ADDR_TABS_RELATIVE:
+ case ADDR_NONE:
EMSG(_(e_invrange));
cmd = NULL;
goto error;
@@ -3938,6 +3951,8 @@ static linenr_T get_address(exarg_T *eap,
case ADDR_QUICKFIX:
lnum = qf_get_cur_valid_idx(eap);
break;
+ case ADDR_NONE:
+ break;
}
}
@@ -4089,6 +4104,9 @@ static char_u *invalid_range(exarg_T *eap)
return (char_u *)_(e_invrange);
}
break;
+ case ADDR_NONE:
+ // Will give an error elsewhere.
+ break;
}
}
return NULL;
@@ -4957,7 +4975,8 @@ char_u *get_command_name(expand_T *xp, int idx)
static int uc_add_command(char_u *name, size_t name_len, char_u *rep,
uint32_t argt, long def, int flags, int compl,
- char_u *compl_arg, int addr_type, int force)
+ char_u *compl_arg, cmd_addr_T addr_type, bool force)
+ FUNC_ATTR_NONNULL_ARG(1, 3)
{
ucmd_T *cmd = NULL;
char_u *p;
@@ -5049,7 +5068,7 @@ fail:
static struct {
- int expand;
+ cmd_addr_T expand;
char *name;
char *shortname;
} addr_type_complete[] =
@@ -5062,7 +5081,7 @@ static struct {
{ ADDR_WINDOWS, "windows", "win" },
{ ADDR_QUICKFIX, "quickfix", "qf" },
{ ADDR_OTHER, "other", "?" },
- { -1, NULL, NULL }
+ { ADDR_NONE, NULL, NULL }
};
/*
@@ -5236,7 +5255,7 @@ static void uc_list(char_u *name, size_t name_len)
} while (len < 8 - over);
// Address Type
- for (j = 0; addr_type_complete[j].expand != -1; j++) {
+ for (j = 0; addr_type_complete[j].expand != ADDR_NONE; j++) {
if (addr_type_complete[j].expand != ADDR_LINES
&& addr_type_complete[j].expand == cmd->uc_addr_type) {
STRCPY(IObuff + len, addr_type_complete[j].shortname);
@@ -5284,7 +5303,8 @@ static void uc_list(char_u *name, size_t name_len)
static int uc_scan_attr(char_u *attr, size_t len, uint32_t *argt, long *def,
int *flags, int *complp, char_u **compl_arg,
- int *addr_type_arg)
+ cmd_addr_T *addr_type_arg)
+ FUNC_ATTR_NONNULL_ALL
{
char_u *p;
@@ -5421,7 +5441,7 @@ static void ex_command(exarg_T *eap)
int flags = 0;
int compl = EXPAND_NOTHING;
char_u *compl_arg = NULL;
- int addr_type_arg = ADDR_LINES;
+ cmd_addr_T addr_type_arg = ADDR_LINES;
int has_attr = (eap->arg[0] == '-');
int name_len;
@@ -6080,11 +6100,12 @@ char_u *get_user_cmd_complete(expand_T *xp, int idx)
* Parse address type argument
*/
int parse_addr_type_arg(char_u *value, int vallen, uint32_t *argt,
- int *addr_type_arg)
+ cmd_addr_T *addr_type_arg)
+ FUNC_ATTR_NONNULL_ALL
{
int i, a, b;
- for (i = 0; addr_type_complete[i].expand != -1; i++) {
+ for (i = 0; addr_type_complete[i].expand != ADDR_NONE; i++) {
a = (int)STRLEN(addr_type_complete[i].name) == vallen;
b = STRNCMP(value, addr_type_complete[i].name, vallen) == 0;
if (a && b) {
@@ -6093,7 +6114,7 @@ int parse_addr_type_arg(char_u *value, int vallen, uint32_t *argt,
}
}
- if (addr_type_complete[i].expand == -1) {
+ if (addr_type_complete[i].expand == ADDR_NONE) {
char_u *err = value;
for (i = 0; err[i] != NUL && !ascii_iswhite(err[i]); i++) {}
@@ -6117,6 +6138,7 @@ int parse_addr_type_arg(char_u *value, int vallen, uint32_t *argt,
*/
int parse_compl_arg(const char_u *value, int vallen, int *complp,
uint32_t *argt, char_u **compl_arg)
+ FUNC_ATTR_NONNULL_ALL
{
const char_u *arg = NULL;
size_t arglen = 0;
@@ -9489,7 +9511,7 @@ Dictionary commands_array(buf_T *buf)
PUT(d, "range", obj);
obj = NIL;
- for (int j = 0; addr_type_complete[j].expand != -1; j++) {
+ for (int j = 0; addr_type_complete[j].expand != ADDR_NONE; j++) {
if (addr_type_complete[j].expand != ADDR_LINES
&& addr_type_complete[j].expand == cmd->uc_addr_type) {
obj = STRING_OBJ(cstr_to_string(addr_type_complete[j].name));
diff --git a/src/nvim/generators/gen_ex_cmds.lua b/src/nvim/generators/gen_ex_cmds.lua
index 849c82f50e..2574af6218 100644
--- a/src/nvim/generators/gen_ex_cmds.lua
+++ b/src/nvim/generators/gen_ex_cmds.lua
@@ -62,7 +62,7 @@ for _, cmd in ipairs(defs) do
.cmd_name = (char_u *) "%s",
.cmd_func = (ex_func_T)&%s,
.cmd_argt = %uL,
- .cmd_addr_type = %i
+ .cmd_addr_type = %s
},
]], enumname, cmd.command, cmd.func, cmd.flags, cmd.addr_type))
end
diff --git a/src/nvim/globals.h b/src/nvim/globals.h
index 566a5ae9d6..c53c1546a4 100644
--- a/src/nvim/globals.h
+++ b/src/nvim/globals.h
@@ -935,6 +935,7 @@ EXTERN char_u e_readonly[] INIT(= N_(
"E45: 'readonly' option is set (add ! to override)"));
EXTERN char_u e_readonlyvar[] INIT(= N_(
"E46: Cannot change read-only variable \"%.*s\""));
+EXTERN char_u e_stringreq[] INIT(= N_("E928: String required"));
EXTERN char_u e_dictreq[] INIT(= N_("E715: Dictionary required"));
EXTERN char_u e_toomanyarg[] INIT(= N_(
"E118: Too many arguments for function: %s"));
@@ -1052,4 +1053,7 @@ typedef enum {
#define MIN_CD_SCOPE kCdScopeWindow
#define MAX_CD_SCOPE kCdScopeGlobal
+// Only filled for Win32.
+EXTERN char windowsVersion[20] INIT(= { 0 });
+
#endif // NVIM_GLOBALS_H
diff --git a/src/nvim/hardcopy.c b/src/nvim/hardcopy.c
index 2c954008b3..4ec949759c 100644
--- a/src/nvim/hardcopy.c
+++ b/src/nvim/hardcopy.c
@@ -964,7 +964,6 @@ static colnr_T hardcopy_line(prt_settings_T *psettings, int page_line, prt_pos_T
#define PRT_PS_DEFAULT_DPI (72) // Default user space resolution
#define PRT_PS_DEFAULT_FONTSIZE (10)
-#define PRT_PS_DEFAULT_BUFFER_SIZE (80)
#define PRT_MEDIASIZE_LEN (sizeof(prt_mediasize) / \
sizeof(struct prt_mediasize_S))
diff --git a/src/nvim/lua/vim.lua b/src/nvim/lua/vim.lua
index 2c7ab46ffe..b20fbbf038 100644
--- a/src/nvim/lua/vim.lua
+++ b/src/nvim/lua/vim.lua
@@ -115,7 +115,8 @@ function vim._load_package(name)
for _,path in ipairs(paths) do
local found = vim.api.nvim_get_runtime_file(path, false)
if #found > 0 then
- return loadfile(found[1])
+ local f, err = loadfile(found[1])
+ return f or error(err)
end
end
@@ -123,7 +124,8 @@ function vim._load_package(name)
local path = "lua/"..trail:gsub('?',basename)
local found = vim.api.nvim_get_runtime_file(path, false)
if #found > 0 then
- return package.loadlib(found[1])
+ local f, err = package.loadlib(found[1])
+ return f or error(err)
end
end
return nil
diff --git a/src/nvim/macros.h b/src/nvim/macros.h
index 07dcb4a8e8..303722b4a8 100644
--- a/src/nvim/macros.h
+++ b/src/nvim/macros.h
@@ -98,9 +98,6 @@
# define UTF_COMPOSINGLIKE(p1, p2) utf_composinglike((p1), (p2))
-// Whether to draw the vertical bar on the right side of the cell.
-# define CURSOR_BAR_RIGHT (curwin->w_p_rl && (!(State & CMDLINE) || cmdmsg_rl))
-
// MB_PTR_ADV(): advance a pointer to the next character, taking care of
// multi-byte characters if needed.
// MB_PTR_BACK(): backup a pointer to the previous character, taking care of
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 79c165419e..fd8264583b 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -169,6 +169,14 @@ void early_init(mparm_T *paramp)
init_normal_cmds(); // Init the table of Normal mode commands.
highlight_init();
+#ifdef WIN32
+ OSVERSIONINFO ovi;
+ ovi.dwOSVersionInfoSize = sizeof(ovi);
+ GetVersionEx(&ovi);
+ snprintf(windowsVersion, sizeof(windowsVersion), "%d.%d",
+ (int)ovi.dwMajorVersion, (int)ovi.dwMinorVersion);
+#endif
+
#if defined(HAVE_LOCALE_H)
// Setup to use the current locale (for ctype() and many other things).
// NOTE: Translated messages with encodings other than latin1 will not
@@ -1414,7 +1422,10 @@ static void read_stdin(void)
no_wait_return = true;
int save_msg_didany = msg_didany;
set_buflisted(true);
- (void)open_buffer(true, NULL, 0); // create memfile and read file
+
+ // Create memfile and read from stdin.
+ (void)open_buffer(true, NULL, 0);
+
if (BUFEMPTY() && curbuf->b_next != NULL) {
// stdin was empty, go to buffer 2 (e.g. "echo file1 | xargs nvim"). #8561
do_cmdline_cmd("silent! bnext");
diff --git a/src/nvim/marktree.c b/src/nvim/marktree.c
index e9ea2cbba9..b3afdefac1 100644
--- a/src/nvim/marktree.c
+++ b/src/nvim/marktree.c
@@ -55,7 +55,6 @@
#define T MT_BRANCH_FACTOR
#define ILEN (sizeof(mtnode_t)+(2 * T) * sizeof(void *))
-#define key_t SKRAPET
#define RIGHT_GRAVITY (((uint64_t)1) << 63)
#define ANTIGRAVITY(id) ((id)&(RIGHT_GRAVITY-1))
@@ -65,8 +64,6 @@
#define END_FLAG MARKTREE_END_FLAG
#define ID_INCR (((uint64_t)1) << 2)
-#define PROP_MASK (RIGHT_GRAVITY|PAIRED|END_FLAG)
-
#define rawkey(itr) (itr->node->key[itr->i])
static bool pos_leq(mtpos_t a, mtpos_t b)
diff --git a/src/nvim/option.c b/src/nvim/option.c
index acca6fe681..7cf8412269 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -206,7 +206,6 @@ typedef struct vimoption {
// local option: indirect option index
char_u *def_val[2]; // default values for variable (vi and vim)
LastSet last_set; // script in which the option was last set
-# define SCTX_INIT , { 0, 0, 0 }
} vimoption_T;
#define VI_DEFAULT 0 // def_val[VI_DEFAULT] is Vi default value
diff --git a/src/nvim/popupmnu.c b/src/nvim/popupmnu.c
index f242b7d71a..551a650045 100644
--- a/src/nvim/popupmnu.c
+++ b/src/nvim/popupmnu.c
@@ -742,6 +742,7 @@ static int pum_set_selected(int n, int repeat)
// Edit a new, empty buffer. Set options for a "wipeout"
// buffer.
set_option_value("swf", 0L, NULL, OPT_LOCAL);
+ set_option_value("bl", 0L, NULL, OPT_LOCAL);
set_option_value("bt", 0L, "nofile", OPT_LOCAL);
set_option_value("bh", 0L, "wipe", OPT_LOCAL);
set_option_value("diff", 0L, NULL, OPT_LOCAL);
diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c
index 1c88bd4ba4..2878e73573 100644
--- a/src/nvim/regexp.c
+++ b/src/nvim/regexp.c
@@ -3605,6 +3605,22 @@ theend:
if (backpos.ga_maxlen > BACKPOS_INITIAL)
ga_clear(&backpos);
+ // Make sure the end is never before the start. Can happen when \zs and
+ // \ze are used.
+ if (REG_MULTI) {
+ const lpos_T *const start = &rex.reg_mmatch->startpos[0];
+ const lpos_T *const end = &rex.reg_mmatch->endpos[0];
+
+ if (end->lnum < start->lnum
+ || (end->lnum == start->lnum && end->col < start->col)) {
+ rex.reg_mmatch->endpos[0] = rex.reg_mmatch->startpos[0];
+ }
+ } else {
+ if (rex.reg_match->endp[0] < rex.reg_match->startp[0]) {
+ rex.reg_match->endp[0] = rex.reg_match->startp[0];
+ }
+ }
+
return retval;
}
diff --git a/src/nvim/regexp_nfa.c b/src/nvim/regexp_nfa.c
index 7dfd16fb4f..137b2304c0 100644
--- a/src/nvim/regexp_nfa.c
+++ b/src/nvim/regexp_nfa.c
@@ -6591,6 +6591,22 @@ static long nfa_regexec_both(char_u *line, colnr_T startcol,
#endif
theend:
+ // Make sure the end is never before the start. Can happen when \zs and
+ // \ze are used.
+ if (REG_MULTI) {
+ const lpos_T *const start = &rex.reg_mmatch->startpos[0];
+ const lpos_T *const end = &rex.reg_mmatch->endpos[0];
+
+ if (end->lnum < start->lnum
+ || (end->lnum == start->lnum && end->col < start->col)) {
+ rex.reg_mmatch->endpos[0] = rex.reg_mmatch->startpos[0];
+ }
+ } else {
+ if (rex.reg_match->endp[0] < rex.reg_match->startp[0]) {
+ rex.reg_match->endp[0] = rex.reg_match->startp[0];
+ }
+ }
+
return retval;
}
diff --git a/src/nvim/testdir/test_options.vim b/src/nvim/testdir/test_options.vim
index 15c1836c9a..ccc5e6ffc9 100644
--- a/src/nvim/testdir/test_options.vim
+++ b/src/nvim/testdir/test_options.vim
@@ -348,6 +348,16 @@ func Test_set_values()
endif
endfunc
+func Test_renderoptions()
+ throw 'skipped: Nvim does not support renderoptions'
+ " Only do this for Windows Vista and later, fails on Windows XP and earlier.
+ " Doesn't hurt to do this on a non-Windows system.
+ if windowsversion() !~ '^[345]\.'
+ set renderoptions=type:directx
+ set rop=type:directx
+ endif
+endfunc
+
func ResetIndentexpr()
set indentexpr=
endfunc
diff --git a/src/nvim/testdir/test_regexp_latin.vim b/src/nvim/testdir/test_regexp_latin.vim
index 2ee0ee1c0c..1bb2ee53de 100644
--- a/src/nvim/testdir/test_regexp_latin.vim
+++ b/src/nvim/testdir/test_regexp_latin.vim
@@ -755,6 +755,13 @@ func Test_start_end_of_buffer_match()
bwipe!
endfunc
+func Test_ze_before_zs()
+ call assert_equal('', matchstr(' ', '\%#=1\ze \zs'))
+ call assert_equal('', matchstr(' ', '\%#=2\ze \zs'))
+ call assert_equal(repeat([''], 10), matchlist(' ', '\%#=1\ze \zs'))
+ call assert_equal(repeat([''], 10), matchlist(' ', '\%#=2\ze \zs'))
+endfunc
+
" Check for detecting error
func Test_regexp_error()
set regexpengine=2
diff --git a/src/nvim/testdir/test_signs.vim b/src/nvim/testdir/test_signs.vim
index 2b7672f1af..1e6c311374 100644
--- a/src/nvim/testdir/test_signs.vim
+++ b/src/nvim/testdir/test_signs.vim
@@ -15,14 +15,8 @@ func Test_sign()
" icon is ignored when not supported. "(not supported)" is shown after
" the icon name when listing signs.
sign define Sign1 text=x
- try
- sign define Sign2 text=xy texthl=Title linehl=Error
- \ icon=../../pixmaps/stock_vim_find_help.png
- catch /E255:/
- " Ignore error: E255: Couldn't read in sign data!
- " This error can happen when running in the GUI.
- " Some gui like Motif do not support the png icon format.
- endtry
+
+ call Sign_command_ignore_error('sign define Sign2 text=xy texthl=Title linehl=Error icon=../../pixmaps/stock_vim_find_help.png')
" Test listing signs.
let a=execute('sign list')
@@ -104,12 +98,7 @@ func Test_sign()
edit foo
call setline(1, ['A', 'B', 'C', 'D'])
- try
- sign define Sign3 text=y texthl=DoesNotExist linehl=DoesNotExist
- \ icon=doesnotexist.xpm
- catch /E255:/
- " ignore error: E255: it can happens for guis.
- endtry
+ call Sign_command_ignore_error('sign define Sign3 text=y texthl=DoesNotExist linehl=DoesNotExist icon=doesnotexist.xpm')
let fn = expand('%:p')
exe 'sign place 43 line=2 name=Sign3 file=' . fn
@@ -378,6 +367,25 @@ func Test_sign_delete_buffer()
sign undefine Sign
endfunc
+" Ignore error: E255: Couldn't read in sign data!
+" This error can happen when running in the GUI.
+" Some gui like Motif do not support the png icon format.
+func Sign_command_ignore_error(cmd)
+ try
+ exe a:cmd
+ catch /E255:/
+ endtry
+endfunc
+
+" ignore error: E255: Couldn't read in sign data!
+" This error can happen when running in gui.
+func Sign_define_ignore_error(name, attr)
+ try
+ call sign_define(a:name, a:attr)
+ catch /E255:/
+ endtry
+endfunc
+
" Test for Vim script functions for managing signs
func Test_sign_funcs()
" Remove all the signs
@@ -394,12 +402,7 @@ func Test_sign_funcs()
call sign_define("sign2")
let attr = {'text' : '!!', 'linehl' : 'DiffAdd', 'texthl' : 'DiffChange',
\ 'icon' : 'sign2.ico'}
- try
- call sign_define("sign2", attr)
- catch /E255:/
- " ignore error: E255: Couldn't read in sign data!
- " This error can happen when running in gui.
- endtry
+ call Sign_define_ignore_error("sign2", attr)
call assert_equal([{'name' : 'sign2', 'texthl' : 'DiffChange',
\ 'linehl' : 'DiffAdd', 'text' : '!!', 'icon' : 'sign2.ico'}],
\ sign_getdefined("sign2"))
@@ -508,6 +511,16 @@ func Test_sign_funcs()
call assert_fails('call sign_undefine("none")', 'E155:')
call assert_fails('call sign_undefine([])', 'E730:')
+ " Test for using '.' as the line number for sign_place()
+ call Sign_define_ignore_error("sign1", attr)
+ call cursor(22, 1)
+ call assert_equal(15, sign_place(15, '', 'sign1', 'Xsign',
+ \ {'lnum' : '.'}))
+ call assert_equal([{'bufnr' : bufnr(''), 'signs' :
+ \ [{'id' : 15, 'group' : '', 'lnum' : 22, 'name' : 'sign1',
+ \ 'priority' : 10}]}],
+ \ sign_getplaced('%', {'lnum' : 22}))
+
call delete("Xsign")
call sign_unplace('*')
call sign_undefine()
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 6be2a61c6a..834d27cc84 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -16,7 +16,6 @@
#include "nvim/iconv.h"
#include "nvim/version.h"
#include "nvim/charset.h"
-#include "nvim/macros.h"
#include "nvim/memline.h"
#include "nvim/memory.h"
#include "nvim/message.h"
diff --git a/src/nvim/version.h b/src/nvim/version.h
index c10f6fa534..4af038dd6c 100644
--- a/src/nvim/version.h
+++ b/src/nvim/version.h
@@ -2,6 +2,7 @@
#define NVIM_VERSION_H
#include "nvim/ex_cmds_defs.h"
+#include "nvim/macros.h"
// defined in version.c
extern char* Version;
@@ -10,14 +11,20 @@ extern char* longVersion;
//
// Vim version number, name, etc. Patchlevel is defined in version.c.
//
+
+// Values that change for a new release
#define VIM_VERSION_MAJOR 8
#define VIM_VERSION_MINOR 0
+
+// Values based on the above
+#define VIM_VERSION_MAJOR_STR STR(VIM_VERSION_MAJOR)
+#define VIM_VERSION_MINOR_STR STR(VIM_VERSION_MINOR)
#define VIM_VERSION_100 (VIM_VERSION_MAJOR * 100 + VIM_VERSION_MINOR)
// used for the runtime directory name
-#define VIM_VERSION_NODOT "vim80"
+#define VIM_VERSION_NODOT "vim" VIM_VERSION_MAJOR_STR VIM_VERSION_MINOR_STR
// swap file compatibility (max. length is 6 chars)
-#define VIM_VERSION_SHORT "8.0"
+#define VIM_VERSION_SHORT VIM_VERSION_MAJOR_STR "." VIM_VERSION_MINOR_STR
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "version.h.generated.h"
diff --git a/test/functional/core/startup_spec.lua b/test/functional/core/startup_spec.lua
index ff0fdbea45..d5f03db03a 100644
--- a/test/functional/core/startup_spec.lua
+++ b/test/functional/core/startup_spec.lua
@@ -428,9 +428,9 @@ end)
describe('clean', function()
clear()
- ok(string.match(meths.get_option('runtimepath'), funcs.stdpath('config')) ~= nil)
+ ok(string.find(meths.get_option('runtimepath'), funcs.stdpath('config'), 1, true) ~= nil)
clear('--clean')
- ok(string.match(meths.get_option('runtimepath'), funcs.stdpath('config')) == nil)
+ ok(string.find(meths.get_option('runtimepath'), funcs.stdpath('config'), 1, true) == nil)
end)
describe('user config init', function()
diff --git a/test/functional/eval/executable_spec.lua b/test/functional/eval/executable_spec.lua
index a1cf056907..28aefb72e5 100644
--- a/test/functional/eval/executable_spec.lua
+++ b/test/functional/eval/executable_spec.lua
@@ -2,6 +2,7 @@ local helpers = require('test.functional.helpers')(after_each)
local eq, clear, call, iswin, write_file, command =
helpers.eq, helpers.clear, helpers.call, helpers.iswin, helpers.write_file,
helpers.command
+local exc_exec = helpers.exc_exec
local eval = helpers.eval
describe('executable()', function()
@@ -10,6 +11,20 @@ describe('executable()', function()
it('returns 1 for commands in $PATH', function()
local exe = iswin() and 'ping' or 'ls'
eq(1, call('executable', exe))
+ command('let $PATH = fnamemodify("./test/functional/fixtures/bin", ":p")')
+ eq(1, call('executable', 'null'))
+ eq(1, call('executable', 'true'))
+ eq(1, call('executable', 'false'))
+ end)
+
+ it('fails for invalid values', function()
+ for _, input in ipairs({'""', 'v:null', 'v:true', 'v:false', '{}', '[]'}) do
+ eq('Vim(call):E928: String required', exc_exec('call executable('..input..')'))
+ end
+ command('let $PATH = fnamemodify("./test/functional/fixtures/bin", ":p")')
+ for _, input in ipairs({'v:null', 'v:true', 'v:false'}) do
+ eq('Vim(call):E928: String required', exc_exec('call executable('..input..')'))
+ end
end)
it('returns 0 for non-existent files', function()
diff --git a/test/functional/eval/exepath_spec.lua b/test/functional/eval/exepath_spec.lua
index 10a11aeacc..08d2c59af8 100644
--- a/test/functional/eval/exepath_spec.lua
+++ b/test/functional/eval/exepath_spec.lua
@@ -1,14 +1,40 @@
local helpers = require('test.functional.helpers')(after_each)
local eq, clear, call, iswin =
helpers.eq, helpers.clear, helpers.call, helpers.iswin
+local command = helpers.command
+local exc_exec = helpers.exc_exec
+local matches = helpers.matches
-describe('exepath() (Windows)', function()
- if not iswin() then return end -- N/A for Unix.
+describe('exepath()', function()
+ before_each(clear)
- it('append extension if omitted', function()
- local filename = 'cmd'
- local pathext = '.exe'
- clear({env={PATHEXT=pathext}})
- eq(call('exepath', filename..pathext), call('exepath', filename))
+ it('returns 1 for commands in $PATH', function()
+ local exe = iswin() and 'ping' or 'ls'
+ local ext_pat = iswin() and '%.EXE$' or '$'
+ matches(exe .. ext_pat, call('exepath', exe))
+ command('let $PATH = fnamemodify("./test/functional/fixtures/bin", ":p")')
+ ext_pat = iswin() and '%.CMD$' or '$'
+ matches('null' .. ext_pat, call('exepath', 'null'))
+ matches('true' .. ext_pat, call('exepath', 'true'))
+ matches('false' .. ext_pat, call('exepath', 'false'))
end)
+
+ it('fails for invalid values', function()
+ for _, input in ipairs({'""', 'v:null', 'v:true', 'v:false', '{}', '[]'}) do
+ eq('Vim(call):E928: String required', exc_exec('call exepath('..input..')'))
+ end
+ command('let $PATH = fnamemodify("./test/functional/fixtures/bin", ":p")')
+ for _, input in ipairs({'v:null', 'v:true', 'v:false'}) do
+ eq('Vim(call):E928: String required', exc_exec('call exepath('..input..')'))
+ end
+ end)
+
+ if iswin() then
+ it('append extension if omitted', function()
+ local filename = 'cmd'
+ local pathext = '.exe'
+ clear({env={PATHEXT=pathext}})
+ eq(call('exepath', filename..pathext), call('exepath', filename))
+ end)
+ end
end)
diff --git a/test/functional/eval/function_spec.lua b/test/functional/eval/function_spec.lua
index 776e760aaf..ce8850fcc2 100644
--- a/test/functional/eval/function_spec.lua
+++ b/test/functional/eval/function_spec.lua
@@ -2,7 +2,10 @@ local helpers = require('test.functional.helpers')(after_each)
local clear = helpers.clear
local eq = helpers.eq
+local matches = helpers.matches
local exc_exec = helpers.exc_exec
+local iswin = helpers.iswin
+local eval = helpers.eval
describe('Up to MAX_FUNC_ARGS arguments are handled by', function()
local max_func_args = 20 -- from eval.h
@@ -27,3 +30,8 @@ describe('Up to MAX_FUNC_ARGS arguments are handled by', function()
eq('Vim(call):E740: Too many arguments for function rpcnotify', ret)
end)
end)
+
+it('windowsversion()', function()
+ clear()
+ matches(iswin() and '^%d+%.%d+$' or '^$', eval('windowsversion()'))
+end)
diff --git a/test/functional/fixtures/bin/false b/test/functional/fixtures/bin/false
new file mode 100755
index 0000000000..e69de29bb2
--- /dev/null
+++ b/test/functional/fixtures/bin/false
diff --git a/test/functional/fixtures/bin/false.cmd b/test/functional/fixtures/bin/false.cmd
new file mode 100755
index 0000000000..e69de29bb2
--- /dev/null
+++ b/test/functional/fixtures/bin/false.cmd
diff --git a/test/functional/fixtures/bin/null b/test/functional/fixtures/bin/null
new file mode 100755
index 0000000000..e69de29bb2
--- /dev/null
+++ b/test/functional/fixtures/bin/null
diff --git a/test/functional/fixtures/bin/null.cmd b/test/functional/fixtures/bin/null.cmd
new file mode 100755
index 0000000000..e69de29bb2
--- /dev/null
+++ b/test/functional/fixtures/bin/null.cmd
diff --git a/test/functional/fixtures/bin/true b/test/functional/fixtures/bin/true
new file mode 100755
index 0000000000..e69de29bb2
--- /dev/null
+++ b/test/functional/fixtures/bin/true
diff --git a/test/functional/fixtures/bin/true.cmd b/test/functional/fixtures/bin/true.cmd
new file mode 100755
index 0000000000..e69de29bb2
--- /dev/null
+++ b/test/functional/fixtures/bin/true.cmd
diff --git a/test/functional/fixtures/lua/syntax_error.lua b/test/functional/fixtures/lua/syntax_error.lua
new file mode 100644
index 0000000000..8c0cf026ee
--- /dev/null
+++ b/test/functional/fixtures/lua/syntax_error.lua
@@ -0,0 +1 @@
+- <= the syntax error
diff --git a/test/functional/lua/treesitter_spec.lua b/test/functional/lua/treesitter_spec.lua
index 0e823426ae..f34cbbb65b 100644
--- a/test/functional/lua/treesitter_spec.lua
+++ b/test/functional/lua/treesitter_spec.lua
@@ -22,6 +22,10 @@ describe('treesitter API', function()
matches("Error executing lua: Failed to load parser: uv_dlopen: .+",
pcall_err(exec_lua, "parser = vim.treesitter.require_language('borklang', 'borkbork.so')"))
+ -- Should not throw an error when silent
+ eq(false, exec_lua("return vim.treesitter.require_language('borklang', nil, true)"))
+ eq(false, exec_lua("return vim.treesitter.require_language('borklang', 'borkbork.so', true)"))
+
eq("Error executing lua: .../language.lua:0: no parser for 'borklang' language, see :help treesitter-parsers",
pcall_err(exec_lua, "parser = vim.treesitter.inspect_language('borklang')"))
end)
diff --git a/test/functional/lua/vim_spec.lua b/test/functional/lua/vim_spec.lua
index e9e1f7ec12..e253db5297 100644
--- a/test/functional/lua/vim_spec.lua
+++ b/test/functional/lua/vim_spec.lua
@@ -1453,3 +1453,18 @@ describe('lua stdlib', function()
end)
end)
end)
+
+describe('lua: require("mod") from packages', function()
+ before_each(function()
+ command('set rtp+=test/functional/fixtures')
+ end)
+
+ it('propagates syntax error', function()
+ local syntax_error_msg = exec_lua [[
+ local _, err = pcall(require, "syntax_error")
+ return err
+ ]]
+
+ matches("unexpected symbol", syntax_error_msg)
+ end)
+end)
diff --git a/test/functional/terminal/tui_spec.lua b/test/functional/terminal/tui_spec.lua
index 3ef41fde1d..8a5dd7ef18 100644
--- a/test/functional/terminal/tui_spec.lua
+++ b/test/functional/terminal/tui_spec.lua
@@ -1477,7 +1477,7 @@ describe("TUI", function()
retry(nil, 3000, function() -- Wait for log file to be flushed.
local log = read_file('Xtest_tui_verbose_log') or ''
- eq('--- Terminal info --- {{{\n', string.match(log, '--- Terminal.-\n'))
+ eq('--- Terminal info --- {{{\n', string.match(log, '%-%-%- Terminal.-\n'))
ok(#log > 50)
end)
end)