summaryrefslogtreecommitdiffstats
path: root/runtime/autoload/dist/ft.vim
diff options
context:
space:
mode:
authorAmelia Clarke <selene@perilune.dev>2024-05-24 08:05:00 +0200
committerChristian Brabandt <cb@256bit.org>2024-05-24 08:05:00 +0200
commit35dfe58a540e2fb0eff953630f8e4fcbf4bc26ca (patch)
tree2d8e6f3a28d381ed91a719de656494f7ef98b733 /runtime/autoload/dist/ft.vim
parent2b09de910458247b70751928217422c38fd5abf8 (diff)
patch 9.1.0442: hare runtime files outdatedv9.1.0442
Problem: hare runtime files outdated Solution: runtime(hare): update hare.vim to match upstream (Amelia Clarke) closes: #14836 Signed-off-by: Amelia Clarke <selene@perilune.dev> Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'runtime/autoload/dist/ft.vim')
-rw-r--r--runtime/autoload/dist/ft.vim28
1 files changed, 27 insertions, 1 deletions
diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim
index dd4fd30636..bf9e32e783 100644
--- a/runtime/autoload/dist/ft.vim
+++ b/runtime/autoload/dist/ft.vim
@@ -3,7 +3,7 @@ vim9script
# Vim functions for file type detection
#
# Maintainer: The Vim Project <https://github.com/vim/vim>
-# Last Change: 2024 Feb 18
+# Last Change: 2024 May 23
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
# These functions are moved here from runtime/filetype.vim to make startup
@@ -376,6 +376,32 @@ export def FTfs()
endif
enddef
+# Recursively search for Hare source files in a directory and any
+# subdirectories, up to a given depth.
+def IsHareModule(dir: string, depth: number): bool
+ if depth <= 0
+ return !empty(glob(dir .. '/*.ha'))
+ endif
+
+ return reduce(sort(glob(dir .. '/*', true, true),
+ (a, b) => isdirectory(a) - isdirectory(b)),
+ (acc, n) => acc
+ || n =~ '\.ha$'
+ || isdirectory(n)
+ && IsHareModule(n, depth - 1),
+ false)
+enddef
+
+# Determine if a README file exists within a Hare module and should be given the
+# Haredoc filetype.
+export def FTharedoc()
+ if exists('g:filetype_haredoc')
+ if IsHareModule('<afile>:h', get(g:, 'haredoc_search_depth', 1))
+ setf haredoc
+ endif
+ endif
+enddef
+
# Distinguish between HTML, XHTML and Django
export def FThtml()
var n = 1