此插件提供 Hare 编程语言的语法高亮、缩进和其他支持功能。
文 件 类 型 插 件 ft-hare-plugin
此插件提供若干调节插件行为的变量,可在 vimrc 里定义。
hare-folding
此插件提供 { } 块的折叠支持。要打开折叠,在 after-directory 里某个文件 (如
~/.vim/after/ftplugin/hare.vim) 里加入:
setlocal foldmethod=syntax
因为基于语法的折叠往往会创建许多小折叠,建议根据需要调整 'foldminlines' 和
'foldnestmax' 等若干选项。
hare-symbol-operators
缺省不高亮绝大多数的符号操作符 ("!"、"?" 和 "::" 是仅有的例外)。要打开所有操作
符的高亮,可在 vimrc 里将它们链接到用户偏好的高亮组 (译者注: hareCast 为类型
转换 ":",hareSymbolOperator 为符号操作符,hareOperator 为 "as" 和 "is",缺省
只高亮 hareOpreator)。例如:
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 源代码所在的目录下搜索。
g:filetype_haredoc
可通过 g:filetype_haredoc` 变量控制搜索深度,甚至可以完全关闭自动检测:
值 效果
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",用于抑制编译时的标准输出信息。
vim:tw=78:ts=8:noet:ft=help:norl: