patch 9.2.0551: filetype: Tolk files are not recognized

Problem:  filetype: Tolk files are not recognized
Solution: Detect *.tolk files as tolk filetype, include a syntax and
          filetype plugin (redavy)

Tolk is a new-generation language for writing smart contracts on TON
blockchain, which is #1 in speed among other chains.

Reference:
https://docs.ton.org/blockchain-basics/tolk/overview

closes: #20320

Signed-off-by: redavy <hello.redavy@proton.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
redavy
2026-05-28 20:32:36 +00:00
committed by Christian Brabandt
parent 880e06136b
commit b9bba99712
6 changed files with 67 additions and 1 deletions
+2
View File
@@ -339,6 +339,7 @@ runtime/ftplugin/thrift.vim @jiangyinzuo
runtime/ftplugin/tiasm.vim @Freed-Wu
runtime/ftplugin/tidy.vim @dkearns
runtime/ftplugin/tmux.vim @ericpruitt
runtime/ftplugin/tolk.vim @redavy
runtime/ftplugin/toml.vim @averms
runtime/ftplugin/tt2html.vim @petdance
runtime/ftplugin/twig.vim @ribru17
@@ -700,6 +701,7 @@ runtime/syntax/thrift.vim @jiangyinzuo
runtime/syntax/tiasm.vim @Freed-Wu
runtime/syntax/tidy.vim @dkearns
runtime/syntax/tmux.vim @ericpruitt
runtime/syntax/tolk.vim @redavy
runtime/syntax/toml.vim @averms
runtime/syntax/tt2.vim @petdance
runtime/syntax/tt2html.vim @petdance
+3 -1
View File
@@ -3,7 +3,7 @@ vim9script
# Vim functions for file type detection
#
# Maintainer: The Vim Project <https://github.com/vim/vim>
# Last Change: 2026 May 18
# Last Change: 2026 May 28
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
# These functions are moved here from runtime/filetype.vim to make startup
@@ -2743,6 +2743,8 @@ const ft_from_ext = {
"sieve": "sieve",
# TriG
"trig": "trig",
# Tolk
"tolk": "tolk",
# Zig and Zig Object Notation (ZON)
"zig": "zig",
"zon": "zig",
+22
View File
@@ -0,0 +1,22 @@
" Vim filetype plugin file
" Language: Tolk
" Maintainer: redavy <hello.redavy@proton.me>
" Upstream: https://github.com/redavy/vim-tolk
" Last Update: 24 May 2026
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
setlocal commentstring=//\ %s
if get(g:, 'tolk_recommended_style', get(g:, 'recommended_style', 1))
setlocal tabstop=2
setlocal shiftwidth=2
setlocal expandtab
setlocal softtabstop=2
setlocal cindent
endif
let b:undo_ftplugin = "setlocal commentstring< tabstop< shiftwidth< expandtab< softtabstop< cindent<"
+37
View File
@@ -0,0 +1,37 @@
" Vim syntax file
" Language: Tolk
" Maintainer: redavy <hello.redavy@proton.me>
" Upstream: https://github.com/redavy/vim-tolk
" Last Update: 28 May 2026
if exists("b:current_syntax")
finish
endif
" Keywords
syn keyword tolkKeyword do if as fun asm get try var val lazy
syn keyword tolkKeyword else enum true tolk const false throw
syn keyword tolkKeyword redef while catch return assert import
syn keyword tolkKeyword global repeat contract mutate struct
syn keyword tolkKeyword match type null void never
" Strings
syn region tolkString start=+"+ end=+"+
syn region tolkString start=+'+ end=+'+
" Numbers
syn match tolkNumber "\<[0-9]\+\>"
syn match tolkNumber "\<0[xX][0-9a-fA-F]\+\>"
syn match tolkNumber "\<[0-9]\+\.[0-9]\+\>"
" Comments
syn match tolkComment "//.*$"
syn region tolkComment start="/\*" end="\*/"
" Highlights
hi link tolkKeyword Keyword
hi link tolkString String
hi link tolkNumber Number
hi link tolkComment Comment
let b:current_syntax = "tolk"
+1
View File
@@ -904,6 +904,7 @@ def s:GetFilenameChecks(): dict<list<string>>
tla: ['file.tla'],
tli: ['file.tli'],
tmux: ['tmuxfile.conf', '.tmuxfile.conf', '.tmux-file.conf', '.tmux.conf', 'tmux-file.conf', 'tmux.conf', 'tmux.conf.local'],
tolk: ['file.tolk'],
toml: ['file.toml', 'uv.lock', 'Gopkg.lock', 'Pipfile', '/home/user/.cargo/config', '.black',
'any/containers/containers.conf', 'any/containers/containers.conf.d/file.conf',
'any/containers/containers.conf.modules/file.conf', 'any/containers/containers.conf.modules/any/file.conf',
+2
View File
@@ -729,6 +729,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
551,
/**/
550,
/**/