commit 7cfa87ed5bb35465755c5586c1a5b3d2318d0b19 (HEAD, refs/remotes/origin/master)
Author: F. Jason Park
Date: Mon Nov 21 20:53:25 2022 -0800
; Fix ERC test failure following recent typo fix
* test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el: Replace
expected buffer content in test assertion.
* test/lisp/erc/resources/erc-scenarios-common.el: Replace expected
buffer content in test assertion. See also
40539c7587dc474b424cff732973fe8958eadf14 "; Fix typos".
diff --git a/test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el b/test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el
index 711dc7b97f..2ffa86aff6 100644
--- a/test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el
+++ b/test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el
@@ -106,7 +106,7 @@ erc-scenarios-common--base-compat-no-rename-bouncer
(erc-d-t-search-for 1 "")
(erc-d-t-absent-for 0.1 "")
(should (eq erc-server-process erc-server-process-bar))
- (erc-d-t-search-for 10 "keeps you from dishonor")
+ (erc-d-t-search-for 10 "joe: It is a rupture")
(erc-d-t-wait-for 5 (not (erc-server-process-alive)))))
(when more (funcall more))))
diff --git a/test/lisp/erc/resources/erc-scenarios-common.el b/test/lisp/erc/resources/erc-scenarios-common.el
index ef65125241..601c9e95c8 100644
--- a/test/lisp/erc/resources/erc-scenarios-common.el
+++ b/test/lisp/erc/resources/erc-scenarios-common.el
@@ -296,7 +296,7 @@ erc-scenarios-common--base-network-id-bouncer
(erc-d-t-search-for 1 "")
(erc-d-t-absent-for 0.1 "")
(erc-d-t-wait-for 5 (eq erc-server-process erc-server-process-bar))
- (erc-d-t-search-for 15 "keeps you from dishonour")
+ (erc-d-t-search-for 15 "joe: It is a rupture")
(erc-d-t-wait-for 5 (not (erc-server-process-alive)))))
(when after (funcall after))))
commit ea73fd69f0c6251ad9b8fc8267ce0fa68495715e
Author: Juanma Barranquero
Date: Tue Nov 22 04:40:49 2022 +0100
; Fix typos in tree-sitter files
* admin/notes/tree-sitter/starter-guide (Font-lock)
(Debugging queries, Indent, Navigation, Which-func)
(More features?):
* lisp/treesit.el (treesit--merge-ranges)
(treesit-font-lock-feature-list, treesit-font-lock-rules)
(treesit-font-lock-fontify-region, treesit--font-lock-notifier)
(treesit-simple-indent-presets, treesit--font-lock-fast-mode)
(treesit--indent-region-batch-size)
(treesit--indent-rules-optimize, treesit-ready-p): Fix typos.
diff --git a/admin/notes/tree-sitter/starter-guide b/admin/notes/tree-sitter/starter-guide
index faf40bc64f..123dabd9f2 100644
--- a/admin/notes/tree-sitter/starter-guide
+++ b/admin/notes/tree-sitter/starter-guide
@@ -111,7 +111,7 @@ will be fontified in their capture name.
The capture name could also be a function, in which case (NODE
OVERRIDE START END) is passed to the function for fontification. START
-and END is the start and end of the region to be fontified. The
+and END are the start and end of the region to be fontified. The
function should only fontify within that region. The function should
also allow more optional arguments with (&rest _), for future
extensibility. For OVERRIDE check out the docstring of
@@ -169,7 +169,7 @@ Neovim also has a bunch of queries to reference:
The manual explains how to read grammar files in the bottom of section
"Tree-sitter Language Definitions".
-** Debugging queires
+** Debugging queries
If your query has problems, use ‘treesit-query-validate’ to debug the
query. It will pop a buffer containing the query (in text format) and
@@ -261,8 +261,8 @@ Indent works like this: We have a bunch of rules that look like
When the indentation process starts, point is at the BOL of a line, we
want to know which column to indent this line to. Let NODE be the node
at point, we pass this node to the MATCHER of each rule, one of them
-will match the node (eg, "this node is a closing bracket!"). Then we pass
-the node to the ANCHOR, which returns a point, eg, the BOL of the
+will match the node (eg, "this node is a closing bracket!"). Then we
+pass the node to the ANCHOR, which returns a point, eg, the BOL of the
previous line. We find the column number of that point (eg, 4), add
OFFSET to it (eg, 0), and that is the column we want to indent the
current line to (4 + 0 = 4).
@@ -297,7 +297,7 @@ There is also a manual section for indent: "Parser-based Indentation".
When writing indent rules, you can use ‘treesit-check-indent’ to
check if your indentation is correct. To debug what went wrong, set
-‘treesit--indent-verboase’ to non-nil. Then when you indent, Emacs
+‘treesit--indent-verbose’ to non-nil. Then when you indent, Emacs
tells you which rule is applied in the echo area.
#+begin_src elisp
@@ -358,7 +358,7 @@ definition node, and ’end means we want to go to the end of that node.
Tree-sitter has default implementations for
‘beginning-of-defun-function’ and ‘end-of-defun-function’. So for
-ordinary languages, it is suffice to set ‘treesit-defun-type-regexp’
+ordinary languages, it is enough to set ‘treesit-defun-type-regexp’
to something that matches all the defun struct types in the language,
and call ‘treesit-major-mode-setup’. For example,
@@ -375,8 +375,8 @@ and call ‘treesit-major-mode-setup’. For example,
If you have an imenu implementation, set ‘which-func-functions’ to
nil, and which-func will automatically use imenu’s data.
-If you want independent implementation for which-func, you can find
-the current function by going up the tree and looking for the
+If you want an independent implementation for which-func, you can
+find the current function by going up the tree and looking for the
function_definition node. See the function below for an example.
Since Python allows nested function definitions, that function keeps
going until it reaches the root node, and records all the function
@@ -410,7 +410,7 @@ For INCLUDE-TYPE see `python-info-current-defun'."
* More features?
Obviously this list is just a starting point, if there are features in
-the major mode that would benefit a parse tree, adding tree-sitter
+the major mode that would benefit from a parse tree, adding tree-sitter
support for that would be great. But in the minimal case, just adding
font-lock is awesome.
diff --git a/lisp/treesit.el b/lisp/treesit.el
index 24f0e1472d..0dcd16d89a 100644
--- a/lisp/treesit.el
+++ b/lisp/treesit.el
@@ -414,8 +414,8 @@ treesit-range-rules
(defun treesit--merge-ranges (old-ranges new-ranges start end)
"Merge OLD-RANGES and NEW-RANGES, discarding ranges between START and END.
-OLD-RANGES and NEW-RANGES are lists of cons of the form (BEG . END). When
-merging the two ranges, if a range in OLD-RANGES intersects with
+OLD-RANGES and NEW-RANGES are lists of cons of the form (BEG . END).
+When merging the two ranges, if a range in OLD-RANGES intersects with
another range in NEW-RANGES, discard the one in OLD-RANGES and
keep the one in NEW-RANGES. Also discard any range in OLD-RANGES
that intersects the region marked by START and END.
@@ -521,7 +521,7 @@ treesit-font-lock-feature-list
`font-lock-maximum-decoration' controls which levels are
activated.
-Inside each sublist are feature symbols, which corresponds to the
+Inside each sublist are feature symbols, which correspond to the
:feature value of a query defined in `treesit-font-lock-rules'.
Removing a feature symbol from this list disables the
corresponding query during font-lock.
@@ -531,7 +531,7 @@ treesit-font-lock-feature-list
string-interpolation, comment, doc, string, operator, property,
preprocessor, escape-sequence, key (in key-value pairs). Major
modes are free to subdivide or extend on these common features.
-See the manual for more explanations on some of the feature.
+See the manual for more explanations on some of the features.
For changes to this variable to take effect, run
`treesit-font-lock-recompute-features'.")
@@ -585,7 +585,7 @@ treesit-font-lock-rules
:feature \\='script
\"(script_element) @font-lock-builtin-face\")
-For each QUERY, a :language keyword and a :feature keyword is
+For each QUERY, a :language keyword and a :feature keyword are
required. Each query's :feature is a symbol summarizing what the
query fontifies. It is used to allow users to enable/disable
certain features. See `treesit-font-lock-kind-list' for more.
@@ -798,7 +798,7 @@ treesit--node-length
(- (treesit-node-end node) (treesit-node-start node)))
(defvar-local treesit--font-lock-fast-mode nil
- "If this variable is t, change the way we query so its faster.
+ "If this variable is t, change the way we query so it's faster.
This is not a general optimization and should be RARELY needed!
See comments in `treesit-font-lock-fontify-region' for more
detail.")
@@ -810,8 +810,7 @@ treesit--font-lock-fast-mode
;; applied by regexp-based font-lock. The clipped part will be
;; fontified fine when Emacs fontifies the region containing it.
;;
-(defun treesit-font-lock-fontify-region
- (start end &optional loudly)
+(defun treesit-font-lock-fontify-region (start end &optional loudly)
"Fontify the region between START and END.
If LOUDLY is non-nil, display some debugging information."
(when (or loudly treesit--font-lock-verbose)
@@ -832,10 +831,10 @@ treesit-font-lock-fontify-region
;; is very fast anyway (even in large files of size ~10MB).
;; Plus, querying the result of `treesit-node-on' could still
;; miss patterns even if we use some heuristic to enlarge the
- ;; node (how much to enlarge? to which extent?), its much safer
+ ;; node (how much to enlarge? to which extent?), it's much safer
;; to just use the root node.
;;
- ;; Sometimes the source file has some errors that causes
+ ;; Sometimes the source file has some errors that cause
;; tree-sitter to parse it into a enormously tall tree (10k
;; levels tall). In that case querying the root node is very
;; slow. So we try to get top-level nodes and query them. This
@@ -896,7 +895,7 @@ treesit-font-lock-fontify-region
`(jit-lock-bounds ,start . ,end))
(defun treesit--font-lock-notifier (ranges parser)
- "Ensures updated parts of the parse-tree is refontified.
+ "Ensures updated parts of the parse-tree are refontified.
RANGES is a list of (BEG . END) ranges, PARSER is the tree-sitter
parser notifying of the change."
(with-current-buffer (treesit-parser-buffer parser)
@@ -1083,15 +1082,15 @@ treesit-simple-indent-presets
"A list of presets.
These presets that can be used as MATHER and ANCHOR in
`treesit-simple-indent-rules'. MACHTERs and ANCHORs are
-functions that takes 3 arguments: NODE, PARENT and BOL.
+functions that take 3 arguments: NODE, PARENT and BOL.
MATCHER:
\(match NODE-TYPE PARENT-TYPE NODE-FIELD NODE-INDEX-MIN NODE-INDEX-MAX)
NODE-TYPE checks for NODE's type, PARENT-TYPE checks for
- PARENT's type, NODE-FIELD checks for the filed name of NODE
- in PARENT, NODE-INDEX-MIN and NODE-INDEX-MAX checks for
+ PARENT's type, NODE-FIELD checks for the field name of NODE
+ in PARENT, NODE-INDEX-MIN and NODE-INDEX-MAX check for
NODE's index in PARENT. Therefore, to match the first child
where PARENT is \"argument_list\", use
@@ -1147,7 +1146,7 @@ treesit-simple-indent-presets
prev-line
- Returns the first non-whitespace character on the previous line.
+ Returns the first non-whitespace character on the previous line.
point-min
@@ -1278,7 +1277,7 @@ treesit--indent-region-batch-size
"How many lines of indent value do we precompute.
In `treesit-indent-region' we indent in batches: precompute
indent for each line, apply them in one go, let parser reparse,
-and do it again. This way the parser don't need to unnecessarily
+and do it again. This way the parser doesn't need to unnecessarily
reparse after indenting every single line.")
(defun treesit-indent-region (beg end)
@@ -1412,7 +1411,7 @@ treesit--indent-rules-optimize
RULES should be a value suitable for
`treesit-simple-indent-rules'. Return the optimized version of
RULES."
- ;; Right now this function just compiles queries. it doesn't
+ ;; Right now this function just compiles queries. It doesn't
;; byte-compile matchers and anchors because it doesn't make much
;; difference.
(cl-loop for setting in rules
@@ -1551,8 +1550,8 @@ treesit-ready-p
If tree-sitter is not ready, emit a warning and return nil. If
the user has chosen to activate tree-sitter for LANGUAGE and
tree-sitter is ready, return non-nil. If QUIET is t, don't emit
-warning in either case; if quiet is `message', display a message
-instead of emitting warning."
+a warning in either case; if quiet is `message', display a message
+instead of emitting a warning."
(let ((language-list (if (consp language)
language
(list language)))
commit 19954da8dd927f9db4ca95d8a1320207e6c404cd
Author: Stefan Kangas
Date: Tue Nov 22 02:38:41 2022 +0100
Refresh menus in gnus.texi
Fixes problem reported by Po Lu .
* doc/misc/gnus.texi (Top, Starting Up, Article Treatment)
(The Gnus Diary Library, Searching, nnmairix): Refresh menus.
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 1d522bf9ca..0508b5cc05 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -402,21 +402,21 @@ Top
@end iftex
@menu
-* Don't Panic:: Your first 20 minutes with Gnus.
-* Starting Up:: Finding news can be a pain.
-* Group Buffer:: Selecting, subscribing and killing groups.
-* Summary Buffer:: Reading, saving and posting articles.
-* Article Buffer:: Displaying and handling articles.
-* Composing Messages:: Information on sending mail and news.
-* Select Methods:: Gnus reads all messages from various select methods.
-* Scoring:: Assigning values to articles.
-* Searching:: Mail and News search engines.
-* Various:: General purpose settings.
-* The End:: Farewell and goodbye.
-* Appendices:: Terminology, Emacs intro, @acronym{FAQ}, History, Internals.
-* GNU Free Documentation License:: The license for this documentation.
-* Index:: Variable, function and concept index.
-* Key Index:: Key Index.
+* Don't Panic:: Your first 20 minutes with Gnus.
+* Starting Up:: Finding news can be a pain.
+* Group Buffer:: Selecting, subscribing and killing groups.
+* Summary Buffer:: Reading, saving and posting articles.
+* Article Buffer:: Displaying and handling articles.
+* Composing Messages:: Information on sending mail and news.
+* Select Methods:: Gnus reads all messages from various select methods.
+* Scoring:: Assigning values to articles.
+* Searching:: Mail and News search engines.
+* Various:: General purpose settings.
+* The End:: Farewell and goodbye.
+* Appendices:: Terminology, Emacs intro, @acronym{FAQ}, History, Internals.
+* GNU Free Documentation License:: The license for this documentation.
+* Index:: Variable, function and concept index.
+* Key Index:: Key Index.
@c Doesn't work right in html.
@c FIXME Do this in a more standard way.
@@ -596,7 +596,8 @@ Top
* Article Buttons:: Click on URLs, Message-IDs, addresses and the like.
* Article Button Levels:: Controlling appearance of buttons.
* Article Date:: Grumble, UT!
-* Article Display:: Display various stuff---X-Face, Picons, Smileys, Gravatars
+* Article Display:: Display various stuff:
+ X-Face, Picons, Gravatars, Smileys.
* Article Signature:: What is a signature?
* Article Miscellanea:: Various other stuff.
@@ -641,7 +642,7 @@ Top
* Getting Mail:: Reading your personal mail with Gnus.
* Browsing the Web:: Getting messages from a plethora of Web sources.
* Other Sources:: Reading directories, files.
-* Virtual Groups:: Combining articles from multiple sources.
+* Virtual Groups:: Combining articles and groups together.
* Email Based Diary:: Using mails to manage diary events in Gnus.
* Gnus Unplugged:: Reading news and mail offline.
@@ -666,6 +667,13 @@ Top
* Indirect Functions:: Connecting indirectly to the server.
* Common Variables:: Understood by several connection functions.
+Using IMAP
+
+* Connecting to an IMAP Server:: Getting started with @acronym{IMAP}.
+* Customizing the IMAP Connection:: Variables for @acronym{IMAP} connection.
+* Client-Side IMAP Splitting:: Put mail in the correct mail box.
+* Support for IMAP Extensions:: Getting extensions and labels from servers.
+
Getting Mail
* Mail in a Newsreader:: Important introductory notes.
@@ -685,6 +693,7 @@ Top
Mail Sources
* Mail Source Specifiers:: How to specify what a mail source is.
+* Mail Source Functions::
* Mail Source Customization:: Some variables that influence things.
* Fetching Mail:: Using the mail source specifiers.
@@ -695,6 +704,10 @@ Top
* Mail Spool:: Store your mail in a private spool?
* MH Spool:: An mhspool-like back end.
* Maildir:: Another one-file-per-message format.
+* nnmaildir Group Parameters::
+* Article Identification::
+* NOV Data::
+* Article Marks::
* Mail Folders:: Having one file for each group.
* Comparing Mail Back Ends:: An in-depth looks at pros and cons.
@@ -734,10 +747,10 @@ Top
The Gnus Diary Library
-* Diary Summary Line Format:: A nicer summary buffer line format.
-* Diary Articles Sorting:: A nicer way to sort messages.
-* Diary Headers Generation:: Not doing it manually.
-* Diary Group Parameters:: Not handling them manually.
+* Diary Summary Line Format:: A nicer summary buffer line format.
+* Diary Articles Sorting:: A nicer way to sort messages.
+* Diary Headers Generation:: Not doing it manually.
+* Diary Group Parameters:: Not handling them manually.
Gnus Unplugged
@@ -796,9 +809,22 @@ Top
Searching
* Search Engines:: Selecting and configuring search engines.
-* Creating Search Groups:: Creating search groups.
+* Creating Search Groups:: How and where.
* Search Queries:: Gnus' built-in search syntax.
* nnmairix:: Searching with Mairix.
+* nnir::
+
+nnmairix
+
+* About mairix:: About the mairix mail search engine
+* nnmairix requirements:: What you will need for using nnmairix
+* What nnmairix does:: What does nnmairix actually do?
+* Setting up mairix:: Set up your mairix installation
+* Configuring nnmairix:: Set up the nnmairix back end
+* nnmairix keyboard shortcuts:: List of available keyboard shortcuts
+* Propagating marks:: How to propagate marks from nnmairix groups
+* nnmairix tips and tricks:: Some tips, tricks and examples
+* nnmairix caveats:: Some more stuff you might want to know
Various
@@ -839,8 +865,7 @@ Top
* X-Face:: Display a funky, teensy black-and-white image.
* Face:: Display a funkier, teensier colored image.
-* Smileys:: Show all those happy faces the way they were
- meant to be shown.
+* Smileys:: Show all those happy faces the way they were meant to be shown.
* Picons:: How to display pictures of what you're reading.
* Gravatars:: Display the avatar of people you read.
@@ -862,12 +887,39 @@ Top
* Extending the Spam package::
* Spam Statistics Package::
+Spam Back Ends
+
+* Blacklists and Whitelists::
+* BBDB Whitelists::
+* Gmane Spam Reporting::
+* Anti-spam Hashcash Payments::
+* Blackholes::
+* Regular Expressions Header Matching::
+* Bogofilter::
+* SpamAssassin back end::
+* ifile spam filtering::
+* Spam Statistics Filtering::
+* SpamOracle::
+
Spam Statistics Package
* Creating a spam-stat dictionary::
* Splitting mail using spam-stat::
* Low-level interface to the spam-stat dictionary::
+The Gnus Registry
+
+* Gnus Registry Setup::
+* Registry Article Refer Method::
+* Fancy splitting to parent::
+* Store custom flags and keywords::
+* Store arbitrary data::
+
+The Gnus Cloud
+
+* Gnus Cloud Setup::
+* Gnus Cloud Usage::
+
Appendices
* History:: How Gnus got where it is today.
@@ -895,7 +947,7 @@ Top
* Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7.
* Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9.
* Oort Gnus:: It's big. It's far out. Gnus 5.10/5.11.
-* No Gnus:: Very punny. Gnus 5.12/5.13
+* No Gnus:: Very punny. Gnus 5.12/5.13.
* Ma Gnus:: Celebrating 25 years of Gnus.
Customization
@@ -1099,15 +1151,15 @@ Starting Up
terminology section (@pxref{Terminology}).
@menu
-* Finding the News:: Choosing a method for getting news.
-* The Server is Down:: How can I read my mail then?
-* Child Gnusae:: You can have more than one Gnus active at a time.
-* New Groups:: What is Gnus supposed to do with new groups?
-* Changing Servers:: You may want to move from one server to another.
-* Startup Files:: Those pesky startup files---@file{.newsrc}.
-* Auto Save:: Recovering from a crash.
-* The Active File:: Reading the active file over a slow line Takes Time.
-* Startup Variables:: Other variables you might change.
+* Finding the News:: Choosing a method for getting news.
+* The Server is Down:: How can I read my mail then?
+* Child Gnusae:: You can have more than one Gnus active at a time.
+* New Groups:: What is Gnus supposed to do with new groups?
+* Changing Servers:: You may want to move from one server to another.
+* Startup Files:: Those pesky startup files---@file{.newsrc}.
+* Auto Save:: Recovering from a crash.
+* The Active File:: Reading the active file over a slow line Takes Time.
+* Startup Variables:: Other variables you might change.
@end menu
@@ -8718,7 +8770,7 @@ Article Treatment
@menu
* Article Highlighting:: You want to make the article look like fruit salad.
-* Article Fontifying:: Making emphasized text look nice.
+* Article Fontifying:: Making emphasized text look nice.
* Article Hiding:: You also want to make certain info go away.
* Article Washing:: Lots of way-neat functions to make life better.
* Article Header:: Doing various header transformations.
@@ -18399,10 +18451,10 @@ The Gnus Diary Library
@menu
-* Diary Summary Line Format:: A nicer summary buffer line format.
-* Diary Articles Sorting:: A nicer way to sort messages.
-* Diary Headers Generation:: Not doing it manually.
-* Diary Group Parameters:: Not handling them manually.
+* Diary Summary Line Format:: A nicer summary buffer line format.
+* Diary Articles Sorting:: A nicer way to sort messages.
+* Diary Headers Generation:: Not doing it manually.
+* Diary Group Parameters:: Not handling them manually.
@end menu
@node Diary Summary Line Format
@@ -21579,10 +21631,11 @@ Searching
details on Gnus' query language, see @ref{Search Queries}.
@menu
-* Search Engines:: Selecting and configuring search engines.
-* Creating Search Groups:: How and where.
-* Search Queries:: Gnus' built-in search syntax.
-* nnmairix:: Searching with Mairix.
+* Search Engines:: Selecting and configuring search engines.
+* Creating Search Groups:: How and where.
+* Search Queries:: Gnus' built-in search syntax.
+* nnmairix:: Searching with Mairix.
+* nnir::
@end menu
@node Search Engines
@@ -21878,7 +21931,7 @@ nnmairix
* What nnmairix does:: What does nnmairix actually do?
* Setting up mairix:: Set up your mairix installation
* Configuring nnmairix:: Set up the nnmairix back end
-* nnmairix keyboard shortcuts:: List of available keyboard shortcuts
+* nnmairix keyboard shortcuts:: List of available keyboard shortcuts
* Propagating marks:: How to propagate marks from nnmairix groups
* nnmairix tips and tricks:: Some tips, tricks and examples
* nnmairix caveats:: Some more stuff you might want to know
commit d901059281ffca45cbb49fed4feb59ab3609354a
Author: Stefan Kangas
Date: Tue Nov 22 02:10:59 2022 +0100
Improve wording and markup in gnus-faq.texi
* doc/misc/gnus-faq.texi (FAQ 2-4): Improve wording and markup.
(FAQ 2-1, FAQ 2-4, FAQ 2-5, FAQ 3 - Getting Messages, FAQ 3-1)
(FAQ 3-2, FAQ 3-2, FAQ 3-4, FAQ 4-1, FAQ 4-2, FAQ 4-3, FAQ 4-4)
(FAQ 4-8, FAQ 4-9, FAQ 4-10, FAQ 4-12, FAQ 5-1, FAQ 5-2)
(FAQ 5-7, FAQ 6-1, FAQ 6-2, FAQ 6-2, FAQ 6-3, FAQ 6-4, FAQ 6-5)
(FAQ 7-2, FAQ 7-3, FAQ 7-3, FAQ 7-4, FAQ 8-1, FAQ 8-5, FAQ 9-1):
Improve markup and reflow some paragraphs.
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index 167a525ce8..49022ac341 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -144,9 +144,8 @@ FAQ 2-1
are now asked if you want to restore that information
from the auto-save file.
-To prevent this message make sure you exit Gnus
-via @samp{q} in group buffer instead of
-just killing Emacs.
+To prevent this message make sure you exit Gnus via @kbd{q} in group
+buffer instead of just killing Emacs.
@node FAQ 2-2
@subsubheading Question 2.2
@@ -180,25 +179,23 @@ FAQ 2-3
@node FAQ 2-4
@subsubheading Question 2.4
-My group buffer becomes a bit crowded, is there a way to
-sort my groups into categories so I can easier browse
-through them?
+My group buffer is a bit crowded. Is there a way to sort groups into
+categories so I can browse them more easily?
@subsubheading Answer
-Gnus offers the topic mode, it allows you to sort your
-groups in, well, topics, e.g., all groups dealing with
-Linux under the topic linux, all dealing with music under
-the topic music and all dealing with Scottish music under
-the topic scottish which is a subtopic of music.
+Gnus offers the topic mode, it allows you to sort your groups in,
+well, topics. For example, all groups dealing with Linux under the
+topic @samp{linux}, all dealing with music under the topic
+@samp{music} and all dealing with Scottish music under the topic
+@samp{scottish} which is a subtopic of @samp{music}.
-To enter topic mode, just hit t while in Group buffer. Now
-you can use @samp{T n} to create a topic
-at point and @samp{T m} to move a group to
-a specific topic. For more commands see the manual or the
-menu. You might want to include the %P specifier at the
-beginning of your gnus-group-line-format variable to have
-the groups nicely indented.
+To enter topic mode, just hit @kbd{t} while in Group buffer. Now you
+can use @kbd{T n} to create a topic at point and @kbd{T m} to move a
+group to a specific topic. For more commands see the manual or the
+menu. You might want to include the @samp{%P} specifier at the
+beginning of your @var{gnus-group-line-format} variable to have the
+groups nicely indented.
@node FAQ 2-5
@subsubheading Question 2.5
@@ -208,16 +205,14 @@ FAQ 2-5
@subsubheading Answer
-Move point over the group you want to move and
-hit @samp{C-k}, now move point to the
-place where you want the group to be and
-hit @samp{C-y}.
+Move point over the group you want to move and hit @kbd{C-k}, now move
+point to the place where you want the group to be and hit @kbd{C-y}.
@node FAQ 3 - Getting Messages
@subsection Getting Messages
@menu
-* FAQ 3-1:: I just installed Gnus, started it via @samp{M-x gnus}
+* FAQ 3-1:: I just installed Gnus, started it via @kbd{M-x gnus}
but it only says "nntp (news) open error", what to do?
* FAQ 3-2:: I'm working under Windows and have no idea what
~/.gnus.el means.
@@ -242,9 +237,8 @@ FAQ 3 - Getting Messages
@node FAQ 3-1
@subsubheading Question 3.1
-I just installed Gnus, started it via
-@samp{M-x gnus}
-but it only says "nntp (news) open error", what to do?
+I just installed Gnus, started it via @kbd{M-x gnus} but it only says
+"nntp (news) open error", what to do?
@subsubheading Answer
@@ -270,7 +264,7 @@ FAQ 3-2
for the configuration files. However, you don't really
need to know what this means, it suffices that Emacs knows
what it means :-) You can type
-@samp{C-x C-f ~/.gnus.el @key{RET}}
+@kbd{C-x C-f ~/.gnus.el @key{RET}}
(yes, with the forward slash, even on Windows), and
Emacs will open the right file for you. (It will most
likely be new, and thus empty.)
@@ -295,7 +289,7 @@ FAQ 3-2
name HOME and value C:\myhome. Rebooting is not necessary.
Now to create @file{~/.gnus.el}, say
-@samp{C-x C-f ~/.gnus.el @key{RET} C-x C-s}.
+@kbd{C-x C-f ~/.gnus.el @key{RET} C-x C-s}.
in Emacs.
@node FAQ 3-3
@@ -331,14 +325,12 @@ FAQ 3-4
@subsubheading Answer
-If you know the name of the group say @samp{U
-name.of.group @key{RET}} in group buffer (use the
-tab-completion Luke). Otherwise hit ^ in group buffer,
-this brings you to the server buffer. Now place point (the
-cursor) over the server which carries the group you want,
-hit @samp{@key{RET}}, move point to the group
-you want to subscribe to and say @samp{u}
-to subscribe to it.
+If you know the name of the group say @kbd{U name.of.group @key{RET}}
+in group buffer (use the tab-completion Luke). Otherwise hit @kbd{^}
+in group buffer, this brings you to the server buffer. Now place
+point (the cursor) over the server which carries the group you want,
+hit @kbd{RET}, move point to the group you want to subscribe to and
+say @kbd{u} to subscribe to it.
@node FAQ 3-5
@subsubheading Question 3.5
@@ -625,12 +617,10 @@ FAQ 4-1
@subsubheading Answer
-If you enter the group by saying
-@samp{@key{RET}}
-in group buffer with point over the group, only unread and ticked messages are loaded. Say
-@samp{C-u @key{RET}}
-instead to load all available messages. If you want only the 300 newest say
-@samp{C-u 300 @key{RET}}
+If you enter the group by saying @kbd{@key{RET}} in group buffer with
+point over the group, only unread and ticked messages are loaded. Say
+@kbd{C-u @key{RET}} instead to load all available messages. If you
+want only the 300 newest say @kbd{C-u 300 @key{RET}}
Loading only unread messages can be annoying if you have threaded view enabled, say
@@ -643,12 +633,12 @@ FAQ 4-1
all articles (Warning: Both settings enlarge the amount of data which is
fetched when you enter a group and slow down the process of entering a group).
-You can say @samp{/o N} in the summary buffer to load the last N
+You can say @kbd{/o N} in the summary buffer to load the last N
messages.
If you don't want all old messages, but the parent of the message you're just reading,
-you can say @samp{^}, if you want to retrieve the whole thread
-the message you're just reading belongs to, @samp{A T} is your friend.
+you can say @kbd{^}, if you want to retrieve the whole thread
+the message you're just reading belongs to, @kbd{A T} is your friend.
@node FAQ 4-2
@subsubheading Question 4.2
@@ -659,10 +649,10 @@ FAQ 4-2
@subsubheading Answer
You can tick important messages. To do this hit
-@samp{u} while point is in summary buffer
+@kbd{u} while point is in summary buffer
over the message. When you want to remove the mark, hit
-either @samp{d} (this deletes the tick
-mark and set's unread mark) or @samp{M c}
+either @kbd{d} (this deletes the tick
+mark and set's unread mark) or @kbd{M c}
(which deletes all marks for the message).
@node FAQ 4-3
@@ -672,10 +662,7 @@ FAQ 4-3
@subsubheading Answer
-Say @samp{t}
-to show all headers, one more
-@samp{t}
-hides them again.
+Say @kbd{t} to show all headers, one more @kbd{t} hides them again.
@node FAQ 4-4
@subsubheading Question 4.4
@@ -684,11 +671,8 @@ FAQ 4-4
@subsubheading Answer
-Say
-@samp{C-u g}
-to show the raw message
-@samp{g}
-returns to normal view.
+Type @kbd{C-u g} to show the raw message @kbd{g} returns to normal
+view.
@node FAQ 4-5
@subsubheading Question 4.5
@@ -765,11 +749,11 @@ FAQ 4-8
Gnus offers you several functions to ``wash'' incoming mail, you can
find them if you browse through the menu, item
Article->Washing. The most interesting ones are probably ``Wrap
-long lines'' (@samp{W w}), ``Decode ROT13''
-(@samp{W r}) and ``Outlook Deuglify'' which repairs
+long lines'' (@kbd{W w}), ``Decode ROT13''
+(@kbd{W r}) and ``Outlook Deuglify'' which repairs
the dumb quoting used by many users of Microsoft products
-(@samp{W Y f} gives you full deuglify.
-See @samp{W Y C-h} or have a look at the menus for
+(@kbd{W Y f} gives you full deuglify.
+See @kbd{W Y C-h} or have a look at the menus for
other deuglifications).
@node FAQ 4-9
@@ -792,21 +776,21 @@ FAQ 4-9
up rules based on the article you are just reading. Say you're
reading a message by a guy who always writes nonsense and you want
to ignore his messages in the future. Hit
-@samp{L}, to set up a rule which lowers the score.
+@kbd{L}, to set up a rule which lowers the score.
Now Gnus asks you which the criteria for lowering the Score shall
-be. Hit @samp{?} twice to see all possibilities,
-we want @samp{a} which means the author (the from
+be. Hit @kbd{?} twice to see all possibilities,
+we want @kbd{a} which means the author (the from
header). Now Gnus wants to know which kind of matching we want.
-Hit either @samp{e} for an exact match or
-@samp{s} for substring-match and delete afterwards
+Hit either @kbd{e} for an exact match or
+@kbd{s} for substring-match and delete afterwards
everything but the name to score down all authors with the given
name no matter which email address is used. Now you need to tell
Gnus when to apply the rule and how long it should last, hit
-@samp{p} to apply the rule now and let it last
+@kbd{p} to apply the rule now and let it last
forever. If you want to raise the score instead of lowering it say
-@samp{I} instead of @samp{L}.
+@kbd{I} instead of @kbd{L}.
-You can also set up rules by hand. To do this say @samp{V
+You can also set up rules by hand. To do this say @kbd{V
f} in summary buffer. Then you are asked for the name
of the score file, it's name.of.group.SCORE for rules valid in
only one group or all.Score for rules valid in all groups. See the
@@ -851,7 +835,7 @@ FAQ 4-10
@subsubheading Answer
While in group buffer move point over the group and hit
-@samp{G c}, this opens a buffer where you
+@kbd{G c}, this opens a buffer where you
can set options for the group. At the bottom of the buffer
you'll find an item that allows you to set variables
locally for the group. To disable threading enter
@@ -889,10 +873,10 @@ FAQ 4-12
lowest-article-number = total-number-of-articles''. This
works OK for Usenet groups, but if you delete and move
many messages in mail groups, this fails. To cure the
-symptom, enter the group via @samp{C-u @key{RET}}
+symptom, enter the group via @kbd{C-u @key{RET}}
(this makes Gnus get all messages), then
-hit @samp{M P b} to mark all messages and
-then say @samp{B m name.of.group} to move
+hit @kbd{M P b} to mark all messages and
+then say @kbd{B m name.of.group} to move
all messages to the group they have been in before, they
get new message numbers in this process and the count is
right again (until you delete and move your mail to other
@@ -1110,28 +1094,20 @@ FAQ 5-1
@subsubheading Answer
-To start composing a new mail hit @samp{m}
-either in Group or Summary buffer, for a posting, it's
-either @samp{a} in Group buffer and
-filling the Newsgroups header manually
-or @samp{a} in the Summary buffer of the
-group where the posting shall be send to. Replying by mail
-is
-@samp{r} if you don't want to cite the
-author, or import the cited text manually and
-@samp{R} to cite the text of the original
-message. For a follow up to a newsgroup, it's
-@samp{f} and @samp{F}
-(analogously to @samp{r} and
-@samp{R}).
-
-Enter new headers above the line saying "--text follows
-this line--", enter the text below the line. When ready
-hit @samp{C-c C-c}, to send the message,
-if you want to finish it later hit @samp{C-c
-C-d} to save it in the drafts group, where you
-can start editing it again by saying @samp{D
-e}.
+To start composing a new mail hit @kbd{m} either in Group or Summary
+buffer, for a posting, it's either @kbd{a} in Group buffer and filling
+the Newsgroups header manually or @kbd{a} in the Summary buffer of the
+group where the posting shall be send to. Replying by mail is @kbd{r}
+if you don't want to cite the author, or import the cited text
+manually and @kbd{R} to cite the text of the original message. For a
+follow up to a newsgroup, it's @kbd{f} and @kbd{F} (analogously to
+@kbd{r} and @kbd{R}).
+
+Enter new headers above the line saying "--text follows this line--",
+enter the text below the line. When ready hit @kbd{C-c C-c}, to send
+the message, if you want to finish it later hit @kbd{C-c C-d} to save
+it in the drafts group, where you can start editing it again by saying
+@kbd{D e}.
@node FAQ 5-2
@subsubheading Question 5.2
@@ -1156,8 +1132,7 @@ FAQ 5-2
in @file{~/.gnus.el}.
-You can reformat a paragraph by hitting @samp{M-q}
-(as usual).
+You can reformat a paragraph by hitting @kbd{M-q} (as usual).
@node FAQ 5-3
@subsubheading Question 5.3
@@ -1358,16 +1333,13 @@ FAQ 5-7
@end example
@noindent
-Now you should be ready to go. Say @samp{M-x bbdb @key{RET}
-@key{RET}} to open a bbdb buffer showing all
-entries. Say @samp{c} to create a new
-entry, @samp{b} to search your BBDB and
-@samp{C-o} to add a new field to an
-entry. If you want to add a sender to the BBDB you can
-also just hit @kbd{:} on the posting in the summary buffer and
-you are done. When you now compose a new mail,
-hit @samp{TAB} to cycle through know
-recipients.
+Now you should be ready to go. Say @kbd{M-x bbdb @key{RET} @key{RET}}
+to open a bbdb buffer showing all entries. Say @kbd{c} to create a
+new entry, @kbd{b} to search your BBDB and @kbd{C-o} to add a new
+field to an entry. If you want to add a sender to the BBDB you can
+also just hit @kbd{:} on the posting in the summary buffer and you are
+done. When you now compose a new mail, hit @kbd{TAB} to cycle through
+know recipients.
@node FAQ 5-8
@subsubheading Question 5.8
@@ -1576,17 +1548,17 @@ FAQ 6-1
Now you've got to import this mbox file into Gnus. To do
this, create a nndoc group based on the mbox file by
-saying @samp{G f /path/file.mbox @key{RET}} in
+saying @kbd{G f /path/file.mbox @key{RET}} in
Group buffer. You now have read-only access to your
mail. If you want to import the messages to your normal
Gnus mail groups hierarchy, enter the nndoc group you've
-just created by saying @samp{C-u @key{RET}}
+just created by saying @kbd{C-u @key{RET}}
(thus making sure all messages are retrieved), mark all
-messages by saying @samp{M P b} and
+messages by saying @kbd{M P b} and
either copy them to the desired group by saying
-@samp{B c name.of.group @key{RET}} or send them
+@kbd{B c name.of.group @key{RET}} or send them
through nnmail-split-methods (respool them) by saying
-@samp{B r}.
+@kbd{B r}.
@node FAQ 6-2
@subsubheading Question 6.2
@@ -1598,7 +1570,7 @@ FAQ 6-2
If you stumble across an interesting message, say in
gnu.emacs.gnus and want to archive it there are several
solutions. The first and easiest is to save it to a file
-by saying @samp{O f}. However, wouldn't
+by saying @kbd{O f}. However, wouldn't
it be much more convenient to have more direct access to
the archived message from Gnus? If you say yes, put this
snippet by Frank Haun in
@@ -1621,10 +1593,9 @@ FAQ 6-2
@end example
@noindent
-You can now say @samp{M-x
-my-archive-article} in summary buffer to
-archive the article under the cursor in a nnml
-group. (Change nnml to your preferred back end.)
+You can now say @kbd{M-x my-archive-article} in summary buffer to
+archive the article under the cursor in a nnml group. (Change nnml to
+your preferred back end.)
Of course you can also make sure the cache is enabled by saying
@@ -1644,26 +1615,20 @@ FAQ 6-3
@subsubheading Answer
-There are several ways for this, too. For a posting from
-a Usenet group the easiest solution is probably to ask
-@uref{https://groups.google.com, groups.google.com},
-if you found the posting there, tell Google to display
-the raw message, look for the message-id, and say
-@samp{M-^ the@@message.id @key{RET}} in a
-summary buffer.
-There's a Gnus interface for
-groups.google.com which you can call with
-@samp{G W}) in group buffer.
-
-Another idea which works for both mail and news groups
-is to enter the group where the message you are
-searching is and use the standard Emacs search
-@samp{C-s}, it's smart enough to look at
-articles in collapsed threads, too. If you want to
-search bodies, too try @samp{M-s}
-instead. Further on there are the
-gnus-summary-limit-to-foo functions, which can help you,
-too.
+There are several ways for this, too. For a posting from a Usenet
+group the easiest solution is probably to ask
+@uref{https://groups.google.com, groups.google.com}, if you found the
+posting there, tell Google to display the raw message, look for the
+message-id, and say @kbd{M-^ the@@message.id @key{RET}} in a summary
+buffer. There's a Gnus interface for @samp{groups.google.com} which
+you can call with @kbd{G W}) in group buffer.
+
+Another idea which works for both mail and news groups is to enter the
+group where the message you are searching is and use the standard
+Emacs search @kbd{C-s}, it's smart enough to look at articles in
+collapsed threads, too. If you want to search bodies, too try
+@kbd{M-s} instead. Further on there are the gnus-summary-limit-to-foo
+functions, which can help you, too.
@node FAQ 6-4
@subsubheading Question 6.4
@@ -1673,18 +1638,18 @@ FAQ 6-4
@subsubheading Answer
You can of course just mark the mail you don't need
-anymore by saying @samp{#} with point
-over the mail and then say @samp{B @key{DEL}}
+anymore by saying @kbd{#} with point
+over the mail and then say @kbd{B @key{DEL}}
to get rid of them forever. You could also instead of
actually deleting them, send them to a junk-group by
-saying @samp{B m nnml:trash-bin} which
+saying @kbd{B m nnml:trash-bin} which
you clear from time to time, but both are not the intended
way in Gnus.
In Gnus, we let mail expire like news expires on a news
server. That means you tell Gnus the message is
expirable (you tell Gnus "I don't need this mail
-anymore") by saying @samp{E} with point
+anymore") by saying @kbd{E} with point
over the mail in summary buffer. Now when you leave the
group, Gnus looks at all messages which you marked as
expirable before and if they are old enough (default is
@@ -1703,13 +1668,13 @@ FAQ 6-5
got two choices: auto-expire and
total-expire. Auto-expire means, that every article
which has no marks set and is selected for reading is
-marked as expirable, Gnus hits @samp{E}
+marked as expirable, Gnus hits @kbd{E}
for you every time you read a message. Total-expire
follows a slightly different approach, here all article
where the read mark is set are expirable.
To activate auto-expire, include auto-expire in the
-Group parameters for the group. (Hit @samp{G
+Group parameters for the group. (Hit @kbd{G
c} in summary buffer with point over the
group to change group parameters). For total-expire add
total-expire to the group-parameters.
@@ -1721,10 +1686,10 @@ FAQ 6-5
If you want a message to be excluded from expiration in
a group where total or auto expire is active, set either
-tick (hit @samp{u}) or dormant mark (hit
-@samp{u}), when you use auto-expire, you
+tick (hit @kbd{u}) or dormant mark (hit
+@kbd{u}), when you use auto-expire, you
can also set the read mark (hit
-@samp{d}).
+@kbd{d}).
@node FAQ 6-6
@subsubheading Question 6.6
@@ -1817,12 +1782,12 @@ FAQ 7-2
You've got to select the servers whose groups can be
stored locally. To do this, open the server buffer
-(that is press @samp{^} while in the
+(that is press @kbd{^} while in the
group buffer). Now select a server by moving point to
the line naming that server. Finally, agentize the
-server by typing @samp{J a}. If you
+server by typing @kbd{J a}. If you
make a mistake, or change your mind, you can undo this
-action by typing @samp{J r}. When
+action by typing @kbd{J r}. When
you're done, type 'q' to return to the group buffer.
Now the next time you enter a group on an agentized
server, the headers will be stored on disk and read from
@@ -1838,7 +1803,7 @@ FAQ 7-3
You can tell the agent to automatically fetch the bodies
of articles which fulfill certain predicates, this is
done in a special buffer which can be reached by
-saying @samp{J c} in group
+saying @kbd{J c} in group
buffer. Please refer to the documentation for
information which predicates are possible and how
exactly to do it.
@@ -1847,12 +1812,12 @@ FAQ 7-3
articles to store on disk. There are two ways to do
this: Number one: In the summary buffer, process mark a
set of articles that shall be stored in the agent by
-saying @samp{#} with point over the
-article and then type @samp{J s}. The
+saying @kbd{#} with point over the
+article and then type @kbd{J s}. The
other possibility is to set, again in the summary
buffer, downloadable (%) marks for the articles you
-want by typing @samp{@@} with point over
-the article and then typing @samp{J u}.
+want by typing @kbd{@@} with point over
+the article and then typing @kbd{J u}.
What's the difference? Well, process marks are erased as
soon as you exit the summary buffer while downloadable
marks are permanent. You can actually set downloadable
@@ -1874,10 +1839,10 @@ FAQ 7-4
All you've got to do is to tell Gnus when you are online
(plugged) and when you are offline (unplugged), the rest
works automatically. You can toggle plugged/unplugged
-state by saying @samp{J j} in group
-buffer. To start Gnus unplugged say @samp{M-x
+state by saying @kbd{J j} in group
+buffer. To start Gnus unplugged say @kbd{M-x
gnus-unplugged} instead of
-@samp{M-x gnus}. Note that for this to
+@kbd{M-x gnus}. Note that for this to
work, the agent must be active.
@node FAQ 8 - Getting help
@@ -1901,14 +1866,14 @@ FAQ 8-1
@subsubheading Answer
The first stop should be the Gnus manual (Say
-@samp{C-h i d m Gnus @key{RET}} to start the
+@kbd{C-h i d m Gnus @key{RET}} to start the
Gnus manual, then walk through the menus or do a
-full-text search with @samp{s}). Then
+full-text search with @kbd{s}). Then
there are the general Emacs help commands starting with
-C-h, type @samp{C-h ? ?} to get a list
+@kbd{C-h}, type @kbd{C-h ? ?} to get a list
of all available help commands and their meaning. Finally
-@samp{M-x apropos-command} lets you
-search through all available functions and @samp{M-x
+@kbd{M-x apropos-command} lets you
+search through all available functions and @kbd{M-x
apropos} searches the bound variables.
@node FAQ 8-2
@@ -1963,7 +1928,7 @@ FAQ 8-5
@subsubheading Answer
-Say @samp{M-x gnus-bug}, this will start
+Say @kbd{M-x gnus-bug}, this will start
a message to the
@email{bugs@@gnus.org, gnus bug mailing list}
including information about your environment which make
@@ -1998,7 +1963,7 @@ FAQ 9-1
active file, see the node "The Active File" in the Gnus
manual for things you might try to speed the process up.
An other idea would be to byte compile your @file{~/.gnus.el} (say
-@samp{M-x byte-compile-file @key{RET} ~/.gnus.el
+@kbd{M-x byte-compile-file @key{RET} ~/.gnus.el
@key{RET}} to do it). Finally, if you have require
statements in your .gnus, you could replace them with
@code{with-eval-after-load}, which loads the stuff not at startup
commit 40539c7587dc474b424cff732973fe8958eadf14
Author: Stefan Kangas
Date: Mon Nov 21 15:39:43 2022 +0100
; Fix typos
diff --git a/admin/notes/tree-sitter/build-module/README b/admin/notes/tree-sitter/build-module/README
index d205661e6c..2fcb9778da 100644
--- a/admin/notes/tree-sitter/build-module/README
+++ b/admin/notes/tree-sitter/build-module/README
@@ -14,4 +14,4 @@ To build all modules at once, run
This gives you C, JSON, Go, HTML, Javascript, CSS, Python, Typescript
(tsx), C# (csharp), C++ (cpp), Rust. More can be added to batch.sh
-unless it's directory strucure is not standard.
\ No newline at end of file
+unless it's directory structure is not standard.
\ No newline at end of file
diff --git a/admin/notes/tree-sitter/html-manual/Multiple-Languages.html b/admin/notes/tree-sitter/html-manual/Multiple-Languages.html
index 0ae0b1897e..46985649a8 100644
--- a/admin/notes/tree-sitter/html-manual/Multiple-Languages.html
+++ b/admin/notes/tree-sitter/html-manual/Multiple-Languages.html
@@ -277,7 +277,7 @@
pairs. Each query is a tree-sitter query in either the
string, s-expression or compiled form, or a function.
-
If query is a tree-sitter query, it should be preceeded by two
+
If query is a tree-sitter query, it should be preceded by two
:keyword/value pairs, where the :embed keyword
specifies the embedded language, and the :host keyword
specified the host language.
diff --git a/admin/notes/tree-sitter/html-manual/Parser_002dbased-Indentation.html b/admin/notes/tree-sitter/html-manual/Parser_002dbased-Indentation.html
index 3027bbaae9..95005de6d1 100644
--- a/admin/notes/tree-sitter/html-manual/Parser_002dbased-Indentation.html
+++ b/admin/notes/tree-sitter/html-manual/Parser_002dbased-Indentation.html
@@ -223,7 +223,7 @@
This anchor is a function that is called with 3 arguments: node,
parent, and bol, and returns the first non-whitespace
-charater on the previous line.
+character on the previous line.
diff --git a/admin/notes/tree-sitter/starter-guide b/admin/notes/tree-sitter/starter-guide
index 700b020850..faf40bc64f 100644
--- a/admin/notes/tree-sitter/starter-guide
+++ b/admin/notes/tree-sitter/starter-guide
@@ -1,4 +1,4 @@
-STARTER GUIDE ON WRITTING MAJOR MODE WITH TREE-SITTER -*- org -*-
+STARTER GUIDE ON WRITING MAJOR MODE WITH TREE-SITTER -*- org -*-
This document guides you on adding tree-sitter support to a major
mode.
@@ -274,7 +274,7 @@ the anchor point. Below are some convenient builtin matchers and anchors.
For MATHCER we have
(parent-is TYPE) => matches if PARENT’s type matches TYPE as regexp
- (node-is TYPE) => mathces NODE’s type
+ (node-is TYPE) => matches NODE’s type
(query QUERY) => matches if querying PARENT with QUERY
captures NODE.
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index b334105f1e..c472f9b441 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -5000,7 +5000,7 @@ Parser-based Indentation
@item prev-line
This anchor is a function that is called with 3 arguments: @var{node},
@var{parent}, and @var{bol}, and returns the first non-whitespace
-charater on the previous line.
+character on the previous line.
@item point-min
This anchor is a function that is called with 3 arguments: @var{node},
diff --git a/doc/lispref/parsing.texi b/doc/lispref/parsing.texi
index f21d94ec8b..0f6a99b299 100644
--- a/doc/lispref/parsing.texi
+++ b/doc/lispref/parsing.texi
@@ -1611,7 +1611,7 @@ Multiple Languages
pairs. Each @var{query} is a tree-sitter query in either the
string, s-expression or compiled form, or a function.
-If @var{query} is a tree-sitter query, it should be preceeded by two
+If @var{query} is a tree-sitter query, it should be preceded by two
@var{:keyword}/@var{value} pairs, where the @code{:embed} keyword
specifies the embedded language, and the @code{:host} keyword
specified the host language.
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index bade04fb95..a8f5248c4c 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -898,7 +898,7 @@ Movement Commands
@vindex defun-tactic @r{(c-)}
Move to the beginning or end of the current or next function. Other
-constructs (such as a structs or classes) which have a brace block
+constructs (such as structs or classes) which have a brace block
also count as ``functions'' here. To move over several functions, you
can give these commands a repeat count.
diff --git a/doc/misc/edt.texi b/doc/misc/edt.texi
index 8b4ac0da5d..d6f9c9faf9 100644
--- a/doc/misc/edt.texi
+++ b/doc/misc/edt.texi
@@ -317,7 +317,7 @@ Starting emulation
Emacs binds keys to @acronym{ASCII} control characters and so does the
real EDT@. Where EDT key bindings and Emacs key bindings conflict,
the default Emacs key bindings are retained by the EDT emulation by
-default. If you are a diehard EDT user you may not like this. The
+default. If you are a die-hard EDT user you may not like this. The
@ref{Control keys} section explains how to change this so that the EDT
bindings to @acronym{ASCII} control characters override the default
Emacs bindings.
@@ -443,7 +443,7 @@ GNU/Linux
of the @key{PF1} key. The PC keypad can now emulate an LK-201 keypad
(less the comma key), the standard keyboard supplied with DEC terminals
VT-200 and above. This @file{.xmodmaprc} file switches the role of the
-@key{F12} and @key{NumLock} keys. It has been tested on RedHat
+@key{F12} and @key{NumLock} keys. It has been tested on Red Hat
GNU/Linux 5.2. Other versions of GNU/Linux may require different
keycodes. (@ref{Unix} for further help on how to do this.)
@@ -460,7 +460,7 @@ Unix
needed to see how to do this on a particular system.
You will need to look at the output generated by @code{xmodmap} invoked
-with the "-pm" switch. For example, on RedHat GNU/Linux 5.2 on a PC, we
+with the "-pm" switch. For example, on Red Hat GNU/Linux 5.2 on a PC, we
get the following output when running @samp{xmodmap -pm}:
@example
@@ -495,7 +495,7 @@ Unix
.
@end example
-@noindent So, in RedHat GNU/Linux 5.2 on a PC, Num_Lock generates keycode 77.
+@noindent So, in Red Hat GNU/Linux 5.2 on a PC, Num_Lock generates keycode 77.
The following steps are taken:
@enumerate
@@ -883,7 +883,7 @@ Words
(setq edt-word-entities '(?\t) ; specifies TAB, the default
@end example
-@noindent You can also specify characters by their decimal ascii values:
+@noindent You can also specify characters by their decimal ASCII values:
@example
(setq edt-word-entities '(9 45 47)) ; specifies TAB, - , and /
@@ -893,7 +893,7 @@ Control keys
@section Enabling EDT Control Key Sequence Bindings
Where EDT key bindings and Emacs key bindings conflict, the default
-Emacs key bindings are retained by default. Some diehard EDT users
+Emacs key bindings are retained by default. Some die-hard EDT users
may not like this. So, if the variable
@code{edt-use-EDT-control-key-bindings} is set to true in a user's
@file{.emacs} file, then the default EDT Emulation mode will enable most
diff --git a/doc/misc/efaq-w32.texi b/doc/misc/efaq-w32.texi
index b58f6be758..bc3f545b2b 100644
--- a/doc/misc/efaq-w32.texi
+++ b/doc/misc/efaq-w32.texi
@@ -457,12 +457,12 @@ Associate files with Emacs
@node Using with Explorer
@subsection For use with Internet Explorer
@cindex Internet Explorer, view source in Emacs
-@cindex mailto urls, associating with Emacs
-@cindex news urls, associating with Emacs
+@cindex mailto URLs, associating with Emacs
+@cindex news URLs, associating with Emacs
@cindex URLs, associating mail and news URLs with Emacs
You can use Emacs as the editor for composing mail for
-@indicateurl{mailto:} links, reading usenet for @indicateurl{news:}
+@indicateurl{mailto:} links, reading Usenet for @indicateurl{news:}
links, and viewing source. The following registry entries control
this:
diff --git a/doc/misc/eglot.texi b/doc/misc/eglot.texi
index 04bdcc6161..a815aebf59 100644
--- a/doc/misc/eglot.texi
+++ b/doc/misc/eglot.texi
@@ -280,7 +280,7 @@ Setting Up LSP Servers
Sometimes, multiple servers are acceptable alternatives for handling a
given major-mode. In those cases, you may combine the helper function
-@code{eglot-alternatives} with the funcional form of
+@code{eglot-alternatives} with the functional form of
@code{eglot-server-programs}.
@lisp
@@ -994,8 +994,8 @@ Customizing Eglot
Here @code{:@var{server}} identifies a particular language server and
@var{plist} is the corresponding keyword-value property list of one or
more parameter settings for that server, serialized by Eglot as a JSON
-object. @var{plist} may be arbitrarity complex, generally containing
-other keywork-value property sublists corresponding to JSON subobjects.
+object. @var{plist} may be arbitrarily complex, generally containing
+other keyword-value property sublists corresponding to JSON subobjects.
The JSON values @code{true}, @code{false}, @code{null} and @code{@{@}}
are represented by the Lisp values @code{t}, @code{:json-false},
@code{nil}, and @code{eglot-@{@}}, respectively.
diff --git a/doc/misc/emacs-gnutls.texi b/doc/misc/emacs-gnutls.texi
index 1b9f5e1040..8c8a6f3154 100644
--- a/doc/misc/emacs-gnutls.texi
+++ b/doc/misc/emacs-gnutls.texi
@@ -132,7 +132,7 @@ Help For Users
distributions. By default the following locations are tried in this
order: @file{/etc/ssl/certs/ca-certificates.crt} for Debian, Ubuntu,
Gentoo and Arch Linux; @file{/etc/pki/tls/certs/ca-bundle.crt} for
-Fedora and RHEL; @file{/etc/ssl/ca-bundle.pem} for Suse;
+Fedora and RHEL; @file{/etc/ssl/ca-bundle.pem} for SUSE;
@file{/usr/ssl/certs/ca-bundle.crt} for Cygwin;
@file{/usr/local/share/certs/ca-root-nss.crt} for FreeBSD@. You can
easily customize @code{gnutls-trustfiles} to be something else, but
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index 7cb5621b69..167a525ce8 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -189,7 +189,7 @@ FAQ 2-4
Gnus offers the topic mode, it allows you to sort your
groups in, well, topics, e.g., all groups dealing with
Linux under the topic linux, all dealing with music under
-the topic music and all dealing with scottish music under
+the topic music and all dealing with Scottish music under
the topic scottish which is a subtopic of music.
To enter topic mode, just hit t while in Group buffer. Now
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index c4705928d3..1d522bf9ca 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -589,7 +589,7 @@ Top
Article Treatment
* Article Highlighting:: You want to make the article look like fruit salad.
-* Article Fontisizing:: Making emphasized text look nice.
+* Article Fontifying:: Making emphasized text look nice.
* Article Hiding:: You also want to make certain info go away.
* Article Washing:: Lots of way-neat functions to make life better.
* Article Header:: Doing various header transformations.
@@ -1002,7 +1002,7 @@ Don't Panic
Each server maintains a list of groups, and those groups contain
articles. Because Gnus presents a unified interface to a wide variety
of servers, the vocabulary doesn't always quite line up (@pxref{FAQ
-- Glossary}, for a more complete glossary). Thus a local maildir is
+- Glossary}, for a more complete glossary). Thus a local Maildir is
referred to as a ``server'' (@pxref{Finding the News}) the same as a
Usenet or IMAP server is; ``groups'' (@pxref{Group Buffer}) might mean
an NNTP group, IMAP folder, or local mail directory; and an
@@ -1039,7 +1039,7 @@ Don't Panic
New mail has to come from somewhere. Some servers, such as NNTP or
IMAP, are themselves responsible for fetching newly-arrived articles.
-Others, such as maildir or mbox servers, only store articles and don't
+Others, such as Maildir or mbox servers, only store articles and don't
fetch them from anywhere.
In the latter case, Gnus provides for @code{mail sources}: places
@@ -8718,7 +8718,7 @@ Article Treatment
@menu
* Article Highlighting:: You want to make the article look like fruit salad.
-* Article Fontisizing:: Making emphasized text look nice.
+* Article Fontifying:: Making emphasized text look nice.
* Article Hiding:: You also want to make certain info go away.
* Article Washing:: Lots of way-neat functions to make life better.
* Article Header:: Doing various header transformations.
@@ -8840,8 +8840,8 @@ Article Highlighting
@xref{Customizing Articles}, for how to highlight articles automatically.
-@node Article Fontisizing
-@subsection Article Fontisizing
+@node Article Fontifying
+@subsection Article Fontifying
@cindex emphasis
@cindex article emphasis
diff --git a/doc/misc/idlwave.texi b/doc/misc/idlwave.texi
index 4bdbd5c219..0c59fdf738 100644
--- a/doc/misc/idlwave.texi
+++ b/doc/misc/idlwave.texi
@@ -3799,7 +3799,7 @@ HTML Help Browser Tips
@code{idlwave-help-browser-function} inherits the browser configured
in @code{browse-url-browser-function}.
-Note that the HTML files decompiled from the help sources contain
+Note that the HTML files recompiled from the help sources contain
specific references to the @samp{Symbol} font, which by default is not
permitted in normal encodings (it's invalid, technically). Though it
only impacts a few symbols, you can trick Mozilla-based browsers into
diff --git a/doc/misc/mairix-el.texi b/doc/misc/mairix-el.texi
index 3632c64bd4..28b86c43ac 100644
--- a/doc/misc/mairix-el.texi
+++ b/doc/misc/mairix-el.texi
@@ -70,7 +70,7 @@ About
Mairix is a tool for indexing and searching words in locally stored
mail. It was written by Richard Curnow and is licensed under the
GPL@. Mairix comes with most popular GNU/Linux distributions, but it also
-runs under Windows (with cygwin), macOS and Solaris. The website can
+runs under Windows (with Cygwin), macOS and Solaris. The website can
be found at
@uref{http://www.rpcurnow.force9.co.uk/mairix/index.html}
diff --git a/doc/misc/message.texi b/doc/misc/message.texi
index cfad4f4e07..fb6e97f0d3 100644
--- a/doc/misc/message.texi
+++ b/doc/misc/message.texi
@@ -935,7 +935,7 @@ IDNA
@section IDNA
@cindex IDNA
@cindex internationalized domain names
-@cindex non-ascii domain names
+@cindex non-ASCII domain names
@acronym{IDNA} is a standard way to encode non-@acronym{ASCII} domain
names into a readable @acronym{ASCII} string. The details can be
diff --git a/etc/NEWS.24 b/etc/NEWS.24
index 8ef479ac0a..fab8a39b0e 100644
--- a/etc/NEWS.24
+++ b/etc/NEWS.24
@@ -951,7 +951,7 @@ Also the following files used by the now obsolete otodo-mode.el:
*** the old version of todo-mode.el (renamed to otodo-mode.el).
-*** xesam.el (owing to the cancellation of the XESAM project).
+*** xesam.el (owing to the cancelation of the XESAM project).
*** yow.el; use fortune.el or cookie1.el instead.
diff --git a/lib-src/ChangeLog.1 b/lib-src/ChangeLog.1
index 0829f50a56..1a9767661a 100644
--- a/lib-src/ChangeLog.1
+++ b/lib-src/ChangeLog.1
@@ -5643,7 +5643,7 @@
1998-04-06 Andreas Schwab
Silence -Wimplicit:
- * movemail.c: Move cancellations up. Include if
+ * movemail.c: Move cancelations up. Include if
available.
* fakemail.c (_XOPEN_SOURCE): Define for declaration of cuserid.
(parse_header): Explicitly declare return type.
diff --git a/lisp/ChangeLog.9 b/lisp/ChangeLog.9
index 4cb10d2d55..469d0970f8 100644
--- a/lisp/ChangeLog.9
+++ b/lisp/ChangeLog.9
@@ -1888,7 +1888,7 @@
(uniquify-item-greaterp): Substitutes uniquify-item-lessp.
This is equivalent to what the old code did.
(uniquify-rationalize-a-list): Never recompute the proposed
- name. Sort the conflicting sublist before rationalising it: this
+ name. Sort the conflicting sublist before rationalizing it: this
is equivalent to what the old code did, but one directory element
at a time, and only when necessary.
(uniquify-rationalize-conflicting-sublist): Recompute here the
diff --git a/lisp/gnus/ChangeLog.3 b/lisp/gnus/ChangeLog.3
index c55d6225e3..a1ad22fd62 100644
--- a/lisp/gnus/ChangeLog.3
+++ b/lisp/gnus/ChangeLog.3
@@ -1109,7 +1109,7 @@
* gnus-icalendar.el (gnus-icalendar-event:sync-to-org)
(gnus-icalendar-event:inline-org-buttons): Allow for appointment
- cancellations to be synced to org if the original appt has an org
+ cancelations to be synced to org if the original appt has an org
outline.
2013-11-13 Jan Tatarik
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 3bbd68bdcd..dca5b90089 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -7520,7 +7520,7 @@ message-is-yours-p
;;;###autoload
(defun message-cancel-news (&optional arg)
"Cancel an article you posted.
-If ARG, allow editing of the cancellation message."
+If ARG, allow editing of the cancelation message."
(interactive "P")
(unless (message-news-p)
(error "This is not a news article; canceling is impossible"))
diff --git a/lisp/jsonrpc.el b/lisp/jsonrpc.el
index 90833e1c1d..1387fa3692 100644
--- a/lisp/jsonrpc.el
+++ b/lisp/jsonrpc.el
@@ -308,7 +308,7 @@ jsonrpc-request
(setq canceled t))
`(canceled ,cancel-on-input-retval))
(t (while t (accept-process-output nil 30)))))
- ;; In normal operation, cancellation is handled by the
+ ;; In normal operation, cancelation is handled by the
;; timeout function and response filter, but we still have
;; to protect against user-quit (C-g) or the
;; `cancel-on-input' case.
diff --git a/lisp/treesit.el b/lisp/treesit.el
index b81396fc22..24f0e1472d 100644
--- a/lisp/treesit.el
+++ b/lisp/treesit.el
@@ -361,7 +361,7 @@ treesit-range-rules
"Produce settings for `treesit-range-settings'.
QUERY-SPECS are a series of QUERY-SPECs, where each QUERY-SPEC is
-a QUERY preceeded by zero or more pairs of :KEYWORD and VALUE,
+a QUERY preceded by zero or more pairs of :KEYWORD and VALUE,
like this:
:KEYWORD VALUE... QUERY
@@ -572,7 +572,7 @@ treesit-font-lock-rules
or compiled form. For each query, captured nodes are highlighted
with the capture name as its face.
-:KEYWORD and VALUE pairs preceeding a QUERY add meta information
+:KEYWORD and VALUE pairs preceding a QUERY add meta information
to QUERY. For example,
(treesit-font-lock-rules
@@ -742,7 +742,7 @@ treesit-fontify-with-override
(defun treesit--set-nonsticky (start end sym &optional remove)
"Set `rear-nonsticky' property between START and END.
-Set the proeprty to a list containing SYM. If there is already a
+Set the property to a list containing SYM. If there is already a
list, add SYM to that list. If REMOVE is non-nil, remove SYM
instead."
(let* ((prop (get-text-property start 'rear-nonsticky))
@@ -902,7 +902,7 @@ treesit--font-lock-notifier
(with-current-buffer (treesit-parser-buffer parser)
(dolist (range ranges)
(when treesit--font-lock-verbose
- (message "Notifier recieved range: %s-%s"
+ (message "Notifier received range: %s-%s"
(car range) (cdr range)))
(put-text-property (car range) (cdr range) 'fontified nil))))
diff --git a/nt/icons/README b/nt/icons/README
index 4d9fb15e52..f84d4635b3 100644
--- a/nt/icons/README
+++ b/nt/icons/README
@@ -23,7 +23,7 @@ License: GNU General Public License version 3 or later (see COPYING)
"These are some images of a 3D stylized gnu head that I created back
in 1998. I started studying pictures of gnus and wildebeests and
- worked with a 3D modeller, sPatch, until I came up with these. Then
+ worked with a 3D modeler, sPatch, until I came up with these. Then
I worked to make them into icons - cropping the horns off the sides
so the images were big enough to be recognizable (to me anyway)."
diff --git a/src/treesit.c b/src/treesit.c
index 91c26374b3..463e2458a6 100644
--- a/src/treesit.c
+++ b/src/treesit.c
@@ -295,7 +295,7 @@ #define ts_tree_root_node fn_ts_tree_root_node
a node. But since we can just retrieve a new node, it shouldn't
be a limitation.
- - I didn't expose setting timeout and cancellation flag for a
+ - I didn't expose setting timeout and cancelation flag for a
parser, mainly because I don't think they are really necessary
in Emacs's use cases.
@@ -891,7 +891,7 @@ treesit_ensure_parsed (Lisp_Object parser)
when 1) language is not set (impossible in Emacs because the user
has to supply a language to create a parser), 2) parse canceled
due to timeout (impossible because we don't set a timeout), 3)
- parse canceled due to cancellation flag (impossible because we
+ parse canceled due to cancelation flag (impossible because we
don't set the flag). (See comments for ts_parser_parse in
tree_sitter/api.h.) */
if (new_tree == NULL)
@@ -1079,7 +1079,7 @@ treesit_compose_query_signal_data (uint32_t error_offset,
/* Ensure the QUERY is compiled. Return the TSQuery. It could be
NULL if error occurs, in which case ERROR_OFFSET and ERROR_TYPE are
- bound. If error occures, return NULL, and assign SIGNAL_SYMBOL and
+ bound. If error occurs, return NULL, and assign SIGNAL_SYMBOL and
SIGNAL_DATA accordingly. */
static TSQuery *
treesit_ensure_query_compiled (Lisp_Object query, Lisp_Object *signal_symbol,
@@ -1366,7 +1366,7 @@ treesit_check_range_argument (Lisp_Object ranges)
}
/* Generate a list of ranges in Lisp from RANGES. This function
- doens't take ownership of RANGES. BUFFER is used to convert
+ doesn't take ownership of RANGES. BUFFER is used to convert
between tree-sitter buffer offset and buffer position. */
static Lisp_Object
treesit_make_ranges (const TSRange *ranges, uint32_t len,
@@ -2538,7 +2538,7 @@ treesit_traverse_sibling_helper (TSNode node, bool forward, bool named)
}
}
-/* Return the first/last named/unamed child of NODE. FORWARD controls
+/* Return the first/last named/unnamed child of NODE. FORWARD controls
the direction and NAMED controls the nameness. */
static TSNode
treesit_traverse_child_helper (TSNode node, bool forward, bool named)
diff --git a/test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el b/test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el
index 474739d01b..711dc7b97f 100644
--- a/test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el
+++ b/test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el
@@ -106,7 +106,7 @@ erc-scenarios-common--base-compat-no-rename-bouncer
(erc-d-t-search-for 1 "")
(erc-d-t-absent-for 0.1 "")
(should (eq erc-server-process erc-server-process-bar))
- (erc-d-t-search-for 10 "keeps you from dishonour")
+ (erc-d-t-search-for 10 "keeps you from dishonor")
(erc-d-t-wait-for 5 (not (erc-server-process-alive)))))
(when more (funcall more))))
commit aeadba1418d8fc18f17b4ae415cde35e9e272e7a (refs/remotes/origin/feature/tree-sitter)
Author: Yuan Fu
Date: Mon Nov 21 13:46:52 2022 -0800
; * lisp/progmodes/js.el (js-ts-mode): Add autoload cookie.
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index 77106ec583..51d105b9d7 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -3808,6 +3808,7 @@ js-mode
;;(syntax-propertize (point-max))
)
+;;;###autoload
(define-derived-mode js-ts-mode js-base-mode "JavaScript"
"Major mode for editing JavaScript.
commit 3f37f6b43565242db4409022dd9bc980cb86c3f6
Author: Yuan Fu
Date: Mon Nov 21 13:34:38 2022 -0800
; * test/src/treesit-tests.el (treesit-misc): Remove test.
This test is for treesit--setting-for-mode, which is removed when we
switched from using treesit-settings to using separate major modes.
diff --git a/test/src/treesit-tests.el b/test/src/treesit-tests.el
index c736f97e31..59264722ba 100644
--- a/test/src/treesit-tests.el
+++ b/test/src/treesit-tests.el
@@ -522,27 +522,6 @@ treesit-node-check
(insert "]")
(should (treesit-node-check array-node 'outdated))))
-(ert-deftest treesit-misc ()
- "Misc helper functions."
- (skip-unless (treesit-available-p))
- (let ((settings '((t 0 t)
- (c-mode 1 t)
- (text-mode 2 nil)
- (prog-mode 3 t)
- (fundamental-mode 4 t))))
- ;; `treesit--setting-for-mode'.
- ;; Exact match.
- (should (eq 1 (treesit--setting-for-mode 'c-mode settings)))
- ;; Inherit from t.
- (should (eq 0 (treesit--setting-for-mode 'non-exist settings)))
- ;; Inherit from prog-mode rather than fundamental-mode.
- (require 'elisp-mode)
- (should (eq 3 (treesit--setting-for-mode 'emacs-lisp-mode settings)))
- ;; Not inherit from text-mode.
- (require 'outline)
- (should (not (eq 2 (treesit--setting-for-mode 'outline-mode settings))))
- ))
-
;; TODO
;; - Functions in treesit.el
;; - treesit-load-name-override-list
commit eb1a35adc1c5a1a9d14ec8594580c5eb0e3d28fe
Author: Yuan Fu
Date: Mon Nov 21 13:33:03 2022 -0800
; Update tree-sitter starter guide
* admin/notes/tree-sitter/starter-guide: Reflect recent changes.
* admin/notes/tree-sitter/html-manual/Using-Parser.html:
* admin/notes/tree-sitter/html-manual/Tree_002dsitter-C-API.html:
* admin/notes/tree-sitter/html-manual/Parsing-Program-Source.html:
* admin/notes/tree-sitter/html-manual/Parser_002dbased-Indentation.html:
* admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html:
* admin/notes/tree-sitter/html-manual/Multiple-Languages.html:
* admin/notes/tree-sitter/html-manual/Language-Definitions.html: Update.
diff --git a/admin/notes/tree-sitter/html-manual/Language-Definitions.html b/admin/notes/tree-sitter/html-manual/Language-Definitions.html
index 4fd7eb5687..6dd589f825 100644
--- a/admin/notes/tree-sitter/html-manual/Language-Definitions.html
+++ b/admin/notes/tree-sitter/html-manual/Language-Definitions.html
@@ -230,19 +230,38 @@
body: (compound_statement))
+
Exploring the syntax tree
+
+
+
+
To aid in understanding the syntax of a language and in debugging of
+Lisp program that use the syntax tree, Emacs provides an “explore”
+mode, which displays the syntax tree of the source in the current
+buffer in real time. Emacs also comes with an “inspect mode”, which
+displays information of the nodes at point in the mode-line.
+
This mode pops up a window displaying the syntax tree of the source in
+the current buffer. Selecting text in the source buffer highlights
+the corresponding nodes in the syntax tree display. Clicking
+on nodes in the syntax tree highlights the corresponding text in the
+source buffer.
+
This minor mode displays on the mode-line the node that starts
-at point. The mode-line will display
+at point. For example, the mode-line can display
parentfield: (node (child (…)))
-
where node, child, etc, are nodes which begin at point.
+
where node, child, etc., are nodes which begin at point.
parent is the parent of node. node is displayed in
-bold typeface. field-names are field names of node and
-child, etc.
+a bold typeface. field-names are field names of node and
+of child, etc.
If no node starts at point, i.e., point is in the middle of a node,
then the mode line displays the earliest node that spans point, and
@@ -343,7 +362,7 @@
token(rule)
marks rule to produce a single leaf node. That is, instead of
generating a parent node with individual child nodes under it,
-everything is combined into a single leaf node.
+everything is combined into a single leaf node. See Retrieving Nodes.
token.immediate(rule)
Normally, grammar rules ignore preceding whitespace; this
diff --git a/admin/notes/tree-sitter/html-manual/Multiple-Languages.html b/admin/notes/tree-sitter/html-manual/Multiple-Languages.html
index 6d1800fad7..0ae0b1897e 100644
--- a/admin/notes/tree-sitter/html-manual/Multiple-Languages.html
+++ b/admin/notes/tree-sitter/html-manual/Multiple-Languages.html
@@ -273,12 +273,12 @@
a value that treesit-range-settings can have.
It takes a series of query-specs, where each query-spec is
-a query preceded by zero or more pairs of keyword and
-value. Each query is a tree-sitter query in either the
+a query preceded by zero or more keyword/value
+pairs. Each query is a tree-sitter query in either the
string, s-expression or compiled form, or a function.
If query is a tree-sitter query, it should be preceeded by two
-:keywordvalue pairs, where the :embed keyword
+:keyword/value pairs, where the :embed keyword
specifies the embedded language, and the :host keyword
specified the host language.
This function takes a series of query-specs, where each
-query-spec is a query preceded by multiple pairs of
-:keyword and value. Each query is a tree-sitter
-query in either the string, s-expression or compiled form.
-
-
For each query, the :keyword and value pairs add
-meta information to it. The :lang keyword declares
-query’s language. The :feature keyword sets the feature
-name of query. Users can control which features are enabled
-with font-lock-maximum-decoration and
+query-spec is a query preceded by one or more
+:keyword/value pairs. Each query is a
+tree-sitter query in either the string, s-expression or compiled form.
+
+
For each query, the :keyword/value pairs that
+precede it add meta information to it. The :lang keyword
+declares query’s language. The :feature keyword sets the
+feature name of query. Users can control which features are
+enabled with font-lock-maximum-decoration and
treesit-font-lock-feature-list (described below). These two
-keywords are mandated.
+keywords are mandatory.
Other keywords are optional:
@@ -177,24 +177,6 @@
ignored.
-
Contextual entities, like multi-line strings, or /* */ style
-comments, need special care, because change in these entities might
-cause change in a large portion of the buffer. For example, inserting
-the closing comment delimiter */ will change all the text
-between it and the opening delimiter to comment face. Such entities
-should be captured in a special name contextual, so Emacs can
-correctly update their fontification. Here is an example for
-comments:
-
This is a list of lists of feature symbols. Each element of the list
@@ -208,11 +190,20 @@
list disables the corresponding query during font-lock.
Common feature names, for many programming languages, include
-function-name, type, variable-name (left-hand-side or LHS of
-assignments), builtin, constant, keyword, string-interpolation,
-comment, doc, string, operator, preprocessor, escape-sequence, and key
-(in key-value pairs). Major modes are free to subdivide or extend
-these common features.
+definition, type, assignment, builtin,
+constant, keyword, string-interpolation,
+comment, doc, string, operator,
+preprocessor, escape-sequence, and key. Major
+modes are free to subdivide or extend these common features.
+
+
Some of these features warrant some explanation: definition
+highlights whatever is being defined, e.g., the function name in a
+function definition, the struct name in a struct definition, the
+variable name in a variable definition; assignment highlights
+the whatever is being assigned to, e.g., the variable or field in an
+assignment statement; key highlights keys in key-value pairs,
+e.g., keys in a JSON object, or a Python dictionary; doc
+highlights docstrings or doc-comments.
This matcher is a function that is called with 3 arguments:
+node, parent, and bol, and returns non-nil if
+point is before a comment ending token. Comment ending tokens are
+defined by regular expression treesit-comment-end
+(see treesit-comment-end).
+
This anchor is a function is called with 3 arguments: node,
+
This anchor is a function that is called with 3 arguments: node,
parent, and bol, and returns the beginning of the buffer.
This is useful as the beginning of the buffer is always at column 0.
+
This anchor is a function that is called with 3 arguments: node,
+parent, and bol, and returns the position right after the
+comment-start token. Comment-start tokens are defined by regular
+expression treesit-comment-start (see treesit-comment-start). This function assumes parent is
+the comment node.
+
This anchor is a function that is called with 3 arguments: node,
+parent, and bol, and returns the position after the
+comment-start token and any whitespace characters following that
+token. Comment-start tokens are defined by regular expression
+treesit-comment-start. This function assumes parent is
+the comment node.
Checks if node1 and node2 are the same node in a syntax
+tree.
+
+
+
Property information
+
+
In general, nodes in a concrete syntax tree fall into two categories:
+named nodes and anonymous nodes. Whether a node is named
+or anonymous is determined by the language definition
+(see named node).
+
+
+
Apart from being named/anonymous, a node can have other properties. A
+node can be “missing”: missing nodes are inserted by the parser in
+order to recover from certain kinds of syntax errors, i.e., something
+should probably be there according to the grammar, but not there.
+
+
+
A node can be “extra”: extra nodes represent things like comments,
+which can appear anywhere in the text.
+
+
+
A node “has changes” if the buffer changed since when the node is
+retrieved, i.e., outdated.
+
+
+
A node “has error” if the text it spans contains a syntax error. It
+can be the node itself has an error, or one of its
+children/grandchildren... has an error.
+