Commit: runtime(algol68): Add new syntax file, ftplugin and filetype detection

1 view
Skip to first unread message

Christian Brabandt

unread,
Apr 26, 2026, 10:45:13 AMApr 26
to vim...@googlegroups.com
runtime(algol68): Add new syntax file, ftplugin and filetype detection

Commit: https://github.com/vim/vim/commit/3cc7d5071619f30bba2ae4ccfa992dccb8fd5e51
Author: Doug Kearns <dougk...@gmail.com>
Date: Sun Apr 26 14:31:55 2026 +0000

runtime(algol68): Add new syntax file, ftplugin and filetype detection

- Add a syntax file update to Neville Dempsey's long-serving version
- Add a new rudimentary ftplugin
- Add filetype detection

Changes to the syntax file include:
- improved prelude, number and symbol highlighting
- prelude highlighting tests
- updated boiler plate

Note that these runtime files currently target Algol 68 Genie employing
the default UPPER stropping regime. Support for GNU Algol 68 should
also be usable with the UPPER stropping regime, although somewhat less
complete. Full support for the SUPPER stropping regime in GNU Algol 68
is also planned.

closes: #19818

Co-authored-by: Doug Kearns <dougk...@gmail.com>
Signed-off-by: Doug Kearns <dougk...@gmail.com>
Signed-off-by: Janis Papanagnou <janis_pa...@hotmail.com>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS
index 17458f2d2..d73c7f10d 100644
--- a/.github/MAINTAINERS
+++ b/.github/MAINTAINERS
@@ -133,6 +133,7 @@ runtime/doc/xxd-ru.1 @RestorerZ
runtime/doc/xxd-ru.UTF-8.1 @RestorerZ
runtime/ftplugin/abaqus.vim @costerwi
runtime/ftplugin/abnf.vim @A4-Tacks
+runtime/ftplugin/algol68.vim @dkearns
runtime/ftplugin/antlr4.vim @jiangyinzuo
runtime/ftplugin/apache.vim @dubgeiser
runtime/ftplugin/arduino.vim @k-takata
@@ -472,6 +473,7 @@ runtime/syntax/shared/hgcommitDiff.vim @vegerot
runtime/syntax/abaqus.vim @costerwi
runtime/syntax/abnf.vim @A4-Tacks
runtime/syntax/aidl.vim @dpelle
+runtime/syntax/algol68.vim @dkearns
runtime/syntax/amiga.vim @sodero
runtime/syntax/ant.vim @dkearns
runtime/syntax/antlr4.vim @jiangyinzuo
diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim
index 761ff644c..17b261823 100644
--- a/runtime/autoload/dist/ft.vim
+++ b/runtime/autoload/dist/ft.vim
@@ -1726,6 +1726,8 @@ const ft_from_ext = {
"tdf": "ahdl",
# AIDL
"aidl": "aidl",
+ # Algol 68
+ "a68": "algol68",
# AMPL
"run": "ampl",
# ANTLR / PCCTS
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 2102debf2..c18c2b5e3 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 9.2. Last change: 2026 Apr 14
+*syntax.txt* For Vim version 9.2. Last change: 2026 Apr 23


VIM REFERENCE MANUAL by Bram Moolenaar
@@ -849,6 +849,20 @@ ADA
See |ft-ada-syntax|


+ALGOL 68 *algol68* *ft-algol68-syntax*
+
+This syntax file currently targets the Algol 68 Genie project using the
+default UPPER stropping regime. It should also be usuable in other
+environments using the UPPER stropping regime, though somewhat less complete.
+
+Highlighting can be further configured with the following variables.
+
+Variable Highlight ~
+*algol68_no_preludes* no prelude identifiers, procedures or
+ bold word operators
+*algol68_symbolic_operators* all prelude symbolic operators
+
+
ANT *ant.vim* *ft-ant-syntax*

The ant syntax file provides syntax highlighting for javascript and python
diff --git a/runtime/doc/tags b/runtime/doc/tags
index c4cc01bdc..80b1d18be 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -6233,6 +6233,9 @@ added-win32-GUI version5.txt /*added-win32-GUI*
aff-dic-format spell.txt /*aff-dic-format*
after-directory options.txt /*after-directory*
aleph options.txt /*aleph*
+algol68 syntax.txt /*algol68*
+algol68_no_preludes syntax.txt /*algol68_no_preludes*
+algol68_symbolic_operators syntax.txt /*algol68_symbolic_operators*
alt intro.txt /*alt*
alt-input debugger.txt /*alt-input*
alternate-file editing.txt /*alternate-file*
@@ -7519,6 +7522,7 @@ ft-ada-options ft_ada.txt /*ft-ada-options*
ft-ada-plugin ft_ada.txt /*ft-ada-plugin*
ft-ada-syntax ft_ada.txt /*ft-ada-syntax*
ft-ada-variables ft_ada.txt /*ft-ada-variables*
+ft-algol68-syntax syntax.txt /*ft-algol68-syntax*
ft-ant-syntax syntax.txt /*ft-ant-syntax*
ft-apache-syntax syntax.txt /*ft-apache-syntax*
ft-arduino-plugin filetype.txt /*ft-arduino-plugin*
diff --git a/runtime/ftplugin/algol68.vim b/runtime/ftplugin/algol68.vim
new file mode 100644
index 000000000..b995a1fce
--- /dev/null
+++ b/runtime/ftplugin/algol68.vim
@@ -0,0 +1,47 @@
+" Vim filetype plugin
+" Language: Algol 68
+" Maintainer: Doug Kearns <dougk...@gmail.com>
+" Last Change: 2026 Apr 23
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+" TODO: 'comments'
+
+setlocal commentstring=#\ %s\ #
+
+let &l:include='
Reply all
Reply to author
Forward
0 new messages