From: Eli Zaretskii Date: Thu, 15 Dec 2022 08:47:11 +0000 (+0200) Subject: Mention 'tree-sitter' in user manual and NEWS X-Git-Tag: emacs-29.0.90~1160 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=12684c3a199d691899c74c67ff85723a0279c272;p=emacs.git Mention 'tree-sitter' in user manual and NEWS * doc/emacs/programs.texi (Program Modes): Mention tree-sitter and the modes supported by it. * etc/NEWS: Mention tree-sitter in the Installation Changes section. --- diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi index ba8475e86ac..954f4c892e2 100644 --- a/doc/emacs/programs.texi +++ b/doc/emacs/programs.texi @@ -88,6 +88,10 @@ mode for the C programming language is @code{c-mode}. @cindex JSON mode @cindex SQL mode @cindex TypeScript mode +@cindex CSS mode +@cindex Dockerfile mode +@cindex CMake mode +@cindex TOML mode Emacs has programming language modes for Lisp, Scheme, the Scheme-based DSSSL expression language, Ada, ASM, AWK, C, C++, C#, Fortran, Icon, IDL (CORBA), IDLWAVE, Java, Javascript, M4, Makefiles, @@ -97,13 +101,20 @@ Python, Ruby, Simula, SQL, Tcl, TypeScript, Verilog, and VHDL@. An alternative mode for Perl is called CPerl mode. Modes are also available for the scripting languages of the common GNU and Unix shells, and MS-DOS/MS-Windows @samp{BAT} files, JSON, DNS master -files, and various sorts of configuration files. +files, CSS (Cascading Style Sheets), Dockerfiles, CMake files, and various sorts of configuration files. Ideally, Emacs should have a major mode for each programming language that you might want to edit. If it doesn't have a mode for your favorite language, the mode might be implemented in a package not distributed with Emacs (@pxref{Packages}); or you can contribute one. +@cindex tree-sitter library, supported major modes + If Emacs has been compiled with the @samp{tree-sitter} library, it +offers several optional editing modes based on that library, which +utilize the incremental parsing capabilities provided by +@samp{tree-sitter}. These modes have @samp{-ts-} in their names; for +example @code{c-ts-mode}, @code{python-ts-mode}, etc. + @kindex DEL @r{(programming modes)} @findex backward-delete-char-untabify In most programming languages, indentation should vary from line to diff --git a/etc/NEWS b/etc/NEWS index ccaf111f6a6..6f0d1f65bf2 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -30,6 +30,16 @@ Use '--with-native-compilation=aot' to specify that all the Lisp files in the Emacs tree should be natively compiled ahead of time. (This is slow on most machines.) ++++ +** Emacs can be built with the 'tree-sitter' parsing library. +This library, together with grammar libraries, provides incremental +parsing capabilities for several popular programming languages and +other formatted files. Emacs built with this library offers major +modes, described elsewhere in this file, that are based on the +'tree-sitter's parsers. If you have the 'tree-sitter' library +installed, the configure script will automatically include it in the +build; use '--without-tree-sitter' at configure time to disable that. + +++ ** Emacs can be built with built-in support for accessing SQLite databases. This uses the popular sqlite3 library, and can be disabled by using