aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTING.md10
-rw-r--r--README.md51
-rw-r--r--runtime/doc/vim_diff.txt6
-rw-r--r--src/nvim/api/vim.c3
-rw-r--r--test/functional/api/vim_spec.lua5
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
---------
diff --git a/README.md b/README.md
index c967a9d3cc..dc64f776d4 100644
--- a/README.md
+++ b/README.md
@@ -8,13 +8,13 @@
[![Travis Build Status](https://travis-ci.org/neovim/neovim.svg?branch=master)](https://travis-ci.org/neovim/neovim)
[![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/urdqjrik5u521fac/branch/master?svg=true)](https://ci.appveyor.com/project/neovim/neovim/branch/master)
-[![Pull requests waiting for review](https://badge.waffle.io/neovim/neovim.svg?label=RFC&title=RFCs)](https://waffle.io/neovim/neovim)
[![Coverage Status](https://img.shields.io/coveralls/neovim/neovim.svg)](https://coveralls.io/r/neovim/neovim)
[![Coverity Scan Build](https://scan.coverity.com/projects/2227/badge.svg)](https://scan.coverity.com/projects/2227)
[![Clang Scan Build](https://neovim.io/doc/reports/clang/badge.svg)](https://neovim.io/doc/reports/clang)
[![PVS-studio Check](https://neovim.io/doc/reports/pvs/badge.svg)](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>
+[![Downloads](https://img.shields.io/github/downloads/neovim/neovim/total.svg?maxAge=2592000)](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.