Skip to content

Commit cb9808e

Browse files
authored
Overhaul README.md.
1 parent 8d55435 commit cb9808e

File tree

1 file changed

+78
-48
lines changed

1 file changed

+78
-48
lines changed

README.md

Lines changed: 78 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@ your way:
1010
* 📽 Scroll down this README for some [pretty gifs](#animated_gifs)
1111
* 📚 Read Eglot's [manual][manual] and [release notes][release-notes]
1212
* 🏆 Folks over at Google [seem to like it][gospb]. Thanks!
13-
* 👾 Eglot now lives in [Emacs itself](#emacscore)!
13+
* ✨ Get the [stable](#stable) or the [latest](#latest) version
14+
* 👾 Eglot now [lives in Emacs itself](#core)! Learn how to [contribute](#emacscore)!
1415

15-
See also [eglot-x][eglot-x] for non-standard protocol extensions support.
16+
Also see [eglot-x][eglot-x] for non-standard protocol extensions support.
1617

18+
<a name=stable></a>
1719
# Get stable [GNU ELPA][gnuelpa] version
1820

1921
Just type `M-x package-install RET eglot RET` into Emacs 26.3+.
@@ -24,58 +26,20 @@ Now find some source file, any source file, and type `M-x eglot`.
2426
for the language you're using. Otherwise, it prompts you to enter
2527
one.
2628

27-
# Get latest development version from [GNU-Devel ELPA][gnudevelelpa]
29+
<a name=latest></a>
30+
# Get latest [GNU-Devel ELPA][gnudevelelpa] version
2831

29-
First, configure this repository.
32+
First, configure GNU-Devel ELPA as your ELPA source repository.
3033
```lisp
3134
(add-to-list 'package-archives '("gnu-devel" . "https://elpa.gnu.org/devel/"))
3235
```
3336

34-
Then, use `M-x package-install` or `M-x package-update` to install
35-
an ELPA package from the latest upstream.
37+
Then, use `M-x package-install` or `M-x package-update` as before install
38+
an ELPA package from the latest upstream. You will be running the same
39+
Eglot version as if you were running Emacs master!
3640

37-
<a name=emacscore></a>
38-
# Contribute to Eglot's development
39-
40-
_**Eglot is now in Emacs's core!**_ Upcoming Emacs 29 will have `M-x
41-
eglot` built-in.
42-
43-
The recommended way to experiment with changes to the latest Eglot is
44-
to [compile][compile-emacs1] [Emacs][compile-emacs2]
45-
[yourself][compile-emacs3-official].
46-
47-
From a development perspective, moving to core allows us to work on
48-
Eglot in tandem with other related packages already in Emacs, such as
49-
[Flymake][flymake], [ElDoc][eldoc], [Xref][xref], [Project][project].
50-
51-
This means adding or tweaking an Emacs LSP feature is a matter of
52-
submitting a single patch targetting multiple relevant packages, not
53-
just Eglot.
54-
55-
These `:core` packages (Eglot included) are then released periodically
56-
to GNU ELPA, so users of other Emacs's versions can get them via
57-
`M-x package-install`.
58-
59-
# Status of this GitHub repository
60-
61-
This repository is **not the development upstream anymore**, but it's
62-
**not** dead (yet):
63-
64-
* It may be used to start [discussions][discussion].
65-
66-
Sometimes, it's possible the discussion or bug report will be moved
67-
to [Emacs's bug tracker][emacs-bug-tracker-eglot]. You may take the
68-
initiative and start discussion there using `M-x report-emacs-bug`
69-
or simply sending mail to `[email protected]`.
70-
71-
Please the [Eglot-specific bug-reporting instructions][bug-reporting].
72-
73-
* The [`eglot.el`][eglot.el] file here is periodically updated to mirror
74-
the [Emacs upstream][upstream-eglot.el]
75-
76-
* The existing tests of [`eglot-tests.el`][eglot-tests.el], also
77-
periodically updated, may be used to rehearse and validate patches
78-
using [GitHub CI infrastructure][build-status].
41+
`M-x eglot-upgrade-eglot` should also work if you have already installed
42+
it.
7943

8044
<a name="connecting"></a>
8145
# Connecting to a server
@@ -125,6 +89,72 @@ variable, where you can [easily add your own servers][manual].
12589
* YAML's [yaml-language-server][yaml-language-server]
12690
* Zig's [zls][zls]
12791

92+
93+
<a name="core"></a>
94+
# Eglot is in Emacs's core since Emacs 29!
95+
96+
⚠️ This repository is **not the development upstream anymore** ⚠️
97+
98+
It's **not** dead (yet 🧟)
99+
100+
* Pull requests **won't** be merged. You can still use them to show ideas
101+
for patches. See [below](#emacscore) for how to properly contribute.
102+
103+
* You can start a [discussion][discussion]
104+
105+
Say what is on your mind. It's possible discussion or bug report will
106+
be moved to [Emacs's bug tracker][emacs-bug-tracker-eglot]. You may
107+
jump straight to that forum using `M-x report-emacs-bug` or simply
108+
sending mail to `[email protected]`.
109+
110+
Please the [Eglot-specific bug-reporting instructions][bug-reporting].
111+
112+
* The [`eglot.el`][eglot.el] file here is periodically updated to mirror
113+
the [Emacs upstream][upstream-eglot.el]
114+
115+
* The existing tests of [`eglot-tests.el`][eglot-tests.el], also
116+
periodically updated, may be used to rehearse and validate patches
117+
using [GitHub CI infrastructure][build-status].
118+
119+
<a name="emacscore"></a>
120+
# Contribute to Eglot's development
121+
122+
Contributing to Eglot is done by contributing to the Emacs
123+
project. Read below for how Eglot fits in and how to quickly
124+
[submit a patch](#submitpatch).
125+
126+
## Understanding :core packages
127+
128+
From a development perspective, moving to core allows us to work on
129+
Eglot in tandem with other related packages already in Emacs, such as
130+
[Flymake][flymake], [ElDoc][eldoc], [Xref][xref], [Project][project].
131+
132+
This means adding or tweaking an Emacs LSP feature is a matter of
133+
submitting a single patch to Emacs targetting multiple relevant
134+
packages, not just Eglot. You may even propose a new package
135+
altogether.
136+
137+
These -- Eglot included -- are so-called `:core` packages. They
138+
are released periodically to GNU ELPA, so users of older Emacs
139+
versions can get all the googies via `M-x package-install`.
140+
141+
<a name="submitpatch"></a>
142+
## Actualy submitting a patch
143+
144+
The recommended way to experiment with changes the code is to
145+
compile Emacs from a Git repo like
146+
[this one](https://cgit.git.savannah.gnu.org/cgit/emacs.git)
147+
or [this one](https://github.com/emacs-mirror/emacs). Here are
148+
[three][compile-emacs1] [separate][compile-emacs2]
149+
[guides][compile-emacs3-official] for doing so.
150+
151+
When you are content with your tweaks to Eglot (and/or its sibling
152+
`:core` packages), submit you patch **💪via email💪** to
153+
`[email protected]`. You may CC the authors/maintainers of
154+
packages if you know their emails but it isn't strictly necessary.
155+
We'll guide you if any more steps are needed (like copyright
156+
assignments, etc).
157+
128158
<a name="animated_gifs"></a>
129159
# _Obligatory animated gif section_
130160

0 commit comments

Comments
 (0)