diff options
-rw-r--r-- | CONTRIBUTING.md | 10 | ||||
-rw-r--r-- | README.md | 51 | ||||
-rw-r--r-- | runtime/doc/vim_diff.txt | 6 | ||||
-rw-r--r-- | src/nvim/api/vim.c | 3 | ||||
-rw-r--r-- | test/functional/api/vim_spec.lua | 5 |
5 files changed, 44 insertions, 31 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 755d35e559..d40ea3a59d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,7 +8,7 @@ low-risk/isolated tasks: - Merge a [Vim patch]. - Try a [complexity:low] issue. -- Fix [clang-scan], [coverity](#coverity), and [PVS](#pvs-studio) warnings. +- Fix bugs found by [clang-scan], [coverity](#coverity), and [PVS](#pvs-studio). Developer guidelines -------------------- @@ -115,8 +115,7 @@ QuickBuild uses this invocation: ### Coverity [Coverity](https://scan.coverity.com/projects/neovim-neovim) runs against the -master build. If you want to view the defects, just request access at the -_Contributor_ level. An Admin will grant you permission. +master build. To view the defects, just request access; you will be approved. Use this commit-message format for coverity fixes: @@ -126,8 +125,9 @@ where `<id>` is the Coverity ID (CID). For example see [#804](https://github.com ### PVS-Studio -Run `scripts/pvscheck.sh` to check the codebase with [PVS -Studio](https://www.viva64.com/en/pvs-studio/). +View the [PVS analysis report](https://neovim.io/doc/reports/pvs/) to see bugs +found by [PVS Studio](https://www.viva64.com/en/pvs-studio/). +You can run `scripts/pvscheck.sh` locally to run PVS on your machine. Reviewing --------- @@ -8,13 +8,13 @@ [](https://travis-ci.org/neovim/neovim) [](https://ci.appveyor.com/project/neovim/neovim/branch/master) -[](https://waffle.io/neovim/neovim) [](https://coveralls.io/r/neovim/neovim) [](https://scan.coverity.com/projects/2227) [](https://neovim.io/doc/reports/clang) [](https://neovim.io/doc/reports/pvs) <a href="https://buildd.debian.org/neovim"><img src="https://www.debian.org/logos/openlogo-nd-25.png" width="13" height="15">Debian</a> +[](https://github.com/neovim/neovim/releases/) Neovim is a project that seeks to aggressively refactor Vim in order to: @@ -39,34 +39,41 @@ See [the wiki](https://github.com/neovim/neovim/wiki/Building-Neovim) for detail Install from package -------------------- -Packages are in [Homebrew], [Debian], [Ubuntu], [Fedora], [Arch Linux], and -[more](https://github.com/neovim/neovim/wiki/Installing-Neovim). +Pre-built packages for Windows, macOS, and Linux are found at the +[Releases](https://github.com/neovim/neovim/releases/) page. + +Managed packages are in [Homebrew], [Debian], [Ubuntu], [Fedora], [Arch Linux], +and [more](https://github.com/neovim/neovim/wiki/Installing-Neovim)! Project layout -------------- -- `ci/`: Build server scripts -- `cmake/`: Build scripts -- `runtime/`: Application files -- [`src/`](src/nvim/README.md): Application source code -- `third-party/`: CMake sub-project to build third-party dependencies (if the - `USE_BUNDLED_DEPS` flag is undefined or `USE_BUNDLED` CMake option is false). -- [`test/`](test/README.md): Test files - -What's been done so far ------------------------ - -- RPC API based on [MessagePack](https://msgpack.org) -- Embedded [terminal emulator](https://neovim.io/doc/user/nvim_terminal_emulator.html) + ├─ ci/ Build server scripts + ├─ cmake/ Build scripts + ├─ runtime/ User plugins/docs + ├─ src/ Source code + ├─ third-party/ CMake subproject to build dependencies + └─ test/ Test code + +- `third-party/` is activated if `USE_BUNDLED_DEPS` is undefined or the + `USE_BUNDLED` CMake option is true. +- [Source README](src/nvim/README.md) +- [Test README](test/README.md) + +Features +-------- + +- Modern [GUIs](https://github.com/neovim/neovim/wiki/Related-projects#gui) +- [API](https://github.com/neovim/neovim/wiki/Related-projects#api-clients) + access from any language including clojure, lisp, go, haskell, lua, + javascript, perl, python, ruby, rust. +- Embedded, scriptable [terminal emulator](https://neovim.io/doc/user/nvim_terminal_emulator.html) - Asynchronous [job control](https://github.com/neovim/neovim/pull/2247) - [Shared data (shada)](https://github.com/neovim/neovim/pull/2506) among multiple editor instances - [XDG base directories](https://github.com/neovim/neovim/pull/3470) support -- [libuv](https://github.com/libuv/libuv/)-based platform/OS layer -- [Pushdown automaton](https://github.com/neovim/neovim/pull/3413) input model -- 1000s of new tests -- Legacy tests converted to Lua tests +- Compatible with most Vim plugins, including Ruby and Python plugins. -See [`:help nvim-features`][nvim-features] for a comprehensive list. +See [`:help nvim-features`][nvim-features] for the full list! License ------- @@ -97,7 +104,7 @@ See `LICENSE` for details. [license-commit]: https://github.com/neovim/neovim/commit/b17d9691a24099c9210289f16afb1a498a89d803 [nvim-features]: https://neovim.io/doc/user/vim_diff.html#nvim-features [Roadmap]: https://neovim.io/roadmap/ -[advanced UIs]: https://github.com/neovim/neovim/wiki/Related-projects#gui-projects +[advanced UIs]: https://github.com/neovim/neovim/wiki/Related-projects#gui [Homebrew]: https://github.com/neovim/homebrew-neovim#installation [Debian]: https://packages.debian.org/testing/neovim [Ubuntu]: http://packages.ubuntu.com/search?keywords=neovim diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index 9a7789c0f5..8851ef2d4b 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -85,9 +85,9 @@ Working intuitively and consistently is a major goal of Nvim. Examples: ARCHITECTURE ~ External plugins run in separate processes. |remote-plugin| This improves -stability and allows those plugins to perform tasks without blocking the -editor. Even "legacy" Python and Ruby plugins which use the old Vim interfaces -(|if_py| and |if_ruby|) run out-of-process. +stability and allows those plugins to work without blocking the editor. Even +"legacy" Python and Ruby plugins which use the old Vim interfaces (|if_py| and +|if_ruby|) run out-of-process. FEATURES ~ diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 1fedaf30ef..53e5f71fd4 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -135,7 +135,8 @@ Integer nvim_input(String keys) return (Integer)input_enqueue(keys); } -/// Replaces any terminal codes with the internal representation +/// Replaces terminal codes and key codes (<CR>, <Esc>, ...) in a string with +/// the internal representation. /// /// @see replace_termcodes /// @see cpoptions diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua index 61ec6ea829..161682b973 100644 --- a/test/functional/api/vim_spec.lua +++ b/test/functional/api/vim_spec.lua @@ -368,6 +368,11 @@ describe('api', function() '<LeftMouse>', true, true, true)) end) + it('converts keycodes', function() + eq('\nx\27x\rx<x', helpers.nvim('replace_termcodes', + '<NL>x<Esc>x<CR>x<lt>x', true, true, true)) + end) + it('does not crash when transforming an empty string', function() -- Actually does not test anything, because current code will use NULL for -- an empty string. |