内 容 hare hare.vim
1. 介绍 ft-hare-intro 2. 文件类型插件 ft-hare-plugin 3. Haredoc 文件类型 ft-haredoc-plugin 4. 缩进设置 ft-hare-indent 5. 编译器支持 compiler-hare介 绍 ft-hare-intro
此插件提供 Hare 编程语言的语法高亮、缩进和其他支持功能。 文 件 类 型 插 件 ft-hare-plugin 此插件提供可在 vimrc 里定义的若干变量,以调节插件行为。 hare-folding 此插件提供折叠 { } 块的支持。要打开折叠,在 after-directory 里某个文件 (如 ~/.vim/after/ftplugin/hare.vim) 里加入:
setlocal foldmethod=syntax
因为基于语法的折叠往往会创建许多小折叠,建议根据需要调整 'foldminlines' 和
'foldnestmax' 等若干选项。
hare-symbol-operators
绝大多数的符号操作符缺省不高亮 ("!"、"?" 和 "::" 是仅有的例外)。要打开所有操作
符的高亮,可在 vimrc 里将它们链接到用户偏好的高亮组。例如:
hi def link hareCast hareSymbolOperator
hi def link hareSymbolOperator hareOperator
g:hare_recommended_style
根据官方 Hare 风格指导,缺省会设置以下选项:
setlocal noexpandtab
setlocal shiftwidth=8
setlocal softtabstop=0
setlocal tabstop=8
setlocal textwidth=80
要关闭这些建议风格,在 vimrc 里加入:
let g:hare_recommended_style = 0
g:hare_space_error
缺省,<Tab> 字符之后的拖尾空白和制表符会被高亮为错误。在插入模式下,此高亮会自
动关闭。如果要完全关闭此高亮,可在 vimrc 里加入:
let g:hare_space_error = 0
HAREDOC 文 件 类 型 ft-haredoc-plugin
此插件能够通过递归的目录搜索,来自动检测 Hare 模块里的 README 文件,并将其文件
类型设为 "haredoc"。因为这是个常见的文件名,此插件缺省只搜索 Hare 源代码所在的
目录下的 README 文件。
g:filetype_haredoc
g:filetype_haredoc 变量可用于调节此搜索的深度,甚至可以完全跳过 Hare 文档文
件的检测:
值 效果
0 不自动检测
1 仅搜索当前目录 (这是缺省)
2 搜索一层子目录
最大搜索深度可为任意整数,但在绝大多数情况下,超过 2 的值并无明显收益,且会影
响性能。
缩 进 设 置 ft-hare-indent
和其它设置不同,缩进设置可以为每个缓冲区单独设置,从而覆盖全局设置 (如有)。为
此,使用 b: 变量前缀而不是 g: 即可。
g:hare_indent_match_switch b:hare_indent_match_switch
缺省,"match" 和 "switch" 条件的续行只缩进一层: >hare
const file = match (os::create(path, 0o644,
flag::WRONLY | flag::TRUNC)) {
case let file: io::file =>
yield file;
// ...
如果要缩进两层,使其在视觉上更接近 "if" 和 "for" 条件,可在 vimrc 里加入:
let g:hare_indent_match_switch = 2
g:hare_indent_case b:hare_indent_case
缺省,"match" 和 "switch" 分支 (case) 子句的续行缩进两层,以和 case 本体在视觉
上有所区分: >hare
case ltok::I8, ltok::I16, ltok::I32,
ltok::I64, ltok::INT =>
// ...
如果要使用其他缩进层次,可调整 g:hare_indent_case 。合法值为 0 、 1 和
2 。
编 译 器 支 持 compiler-hare
如果在当前目录下检测到 Makefile 文件,此插件会假定当前使用 "make" 构造系统,并
不修改 'makeprg'。否则,会使用 `hare build`。
g:hare_makeprg_params
使用 `hare build` 时,可通过 g:hare_makeprg_params 向 'makeprg' 追加额外的编
译器选项。缺省值是 "-q",以确保编译时不在标准输出上显示。