Skip to content

Commit 68e92cf

Browse files
committed
Add project charter
1 parent 745929e commit 68e92cf

File tree

2 files changed

+72
-0
lines changed

2 files changed

+72
-0
lines changed

_data/nav.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
- title: News
22
url: /news/
3+
- title: Charter
4+
url: /charter/
35
- title: Development
46
url: https://github.com/neovim/neovim
57
- title: Community

charter.html

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
layout: default
3+
title: Project Charter
4+
---
5+
6+
{% include nav.html active='Charter' %}
7+
8+
<div class="container" markdown=1>
9+
10+
<h1>Project Charter</h1>
11+
12+
<p>Neovim is not a rewrite of Vim; it is a refactor (and sometimes redactor) in
13+
the tradition of Vim which itself derives from <a
14+
href="https://en.wikipedia.org/wiki/Stevie_%28text_editor%29">Stevie</a>.</p>
15+
16+
<p>Neovim is a continuation and extension of Vim. Many rewrites, clones,
17+
emulators and imitators exist; some are very clever; none are Vim. Neovim
18+
strives to be a superset of Vim, notwithstanding some intentionally removed
19+
misfeatures; thus insofar as one accepts those few and carefully-considered
20+
excisions, Neovim <em>is</em> Vim. The project is built for users who want the good
21+
parts of Vim, without compromise, plus some new good parts.</p>
22+
23+
<p>The design of Neovim is informed by established industry principles such as
24+
modularity, isolation, well-defined interfaces, in order to:</p>
25+
26+
<ul>
27+
<li> Simplify maintenance and comprehension</li>
28+
<li> Encourage contributions, scale development work</li>
29+
<li> Enable new applications (remote plugins, integrations) and frontends (UIs)</li>
30+
</ul>
31+
32+
<p>This purpose of this charter is to clarify priorities and to guide
33+
decisions.</p>
34+
35+
<h2>Project Goals</h2>
36+
37+
<ul>
38+
<li> Leverage existing and ongoing Vim development development</li>
39+
<li> Maintain feature parity with Vim and avoid regressions</li>
40+
<li> Continue the Vim tradition of backwards compatibility</li>
41+
<li> Keep the core small and fast</li>
42+
<li> Make the core more extensible</li>
43+
<li> Target all platforms supported by libuv</li>
44+
<li> Optimize "out of the box", for new users but especially regular users</li>
45+
<li> Delegate functionality to plugins, but preserve the utility of the nvim core</li>
46+
<li> Ship Luajit as first-class scripting alternative</li>
47+
</ul>
48+
49+
<h2>Project Non-Goals</h2>
50+
51+
<ul>
52+
<li> Turn Vim into an IDE</li>
53+
<li> Limit applications (such as IDEs) built with Neovim</li>
54+
<li> Deprecate VimL</li>
55+
</ul>
56+
57+
<h2>Guiding Principles</h2>
58+
59+
<ul>
60+
<li> <strong>Do Not Regress From Origin</strong></li>
61+
<li> Decide outcomes by weighing cost and benefit</li>
62+
<li> Use automation to solve problems</li>
63+
<li> Enable new contributors: remove barriers to entry</li>
64+
<li> Prefer usability over tradition if the benefit greatly outweighs the cost</li>
65+
<li> In matters of taste or ambiguity, favor tradition/compatibility</li>
66+
<li> Unblock contributors and plugin authors; allow progress</li>
67+
<li> Give usability a chance</li>
68+
</ul>
69+
70+
</div>

0 commit comments

Comments
 (0)