runtime(hare): update for Hare 0.25.2
closes: #18222 Signed-off-by: Amelia Clarke <selene@perilune.dev> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
6bb16d2cee
commit
6d68508e62
@ -1,77 +1,134 @@
|
||||
*ft_hare.txt* Support for the Hare programming language
|
||||
|
||||
==============================================================================
|
||||
CONTENTS *hare*
|
||||
CONTENTS *hare* *hare.vim*
|
||||
|
||||
1. Introduction |hare-intro|
|
||||
2. Filetype plugin |hare-plugin|
|
||||
3. Settings |hare-settings|
|
||||
1. Introduction |ft-hare-intro|
|
||||
2. Filetype plugin |ft-hare-plugin|
|
||||
3. Haredoc filetype |ft-haredoc-plugin|
|
||||
4. Indentation settings |ft-hare-indent|
|
||||
5. Compiler support |compiler-hare|
|
||||
|
||||
==============================================================================
|
||||
INTRODUCTION *hare-intro*
|
||||
INTRODUCTION *ft-hare-intro*
|
||||
|
||||
This plugin provides syntax highlighting, indentation, and other functionality
|
||||
for the Hare programming language. Support is also provided for README files
|
||||
inside Hare modules, but this must be enabled by setting |g:filetype_haredoc|.
|
||||
This plugin provides syntax highlighting, indentation, and other supporting
|
||||
functionality for the Hare programming language.
|
||||
|
||||
==============================================================================
|
||||
FILETYPE PLUGIN *hare-plugin*
|
||||
|
||||
This plugin automatically sets the value of 'path' to include the contents of
|
||||
the HAREPATH environment variable, allowing commands such as |gf| to directly
|
||||
open standard library or third-party modules. If HAREPATH is not set, it
|
||||
defaults to the recommended paths for most Unix-like filesystems, namely
|
||||
/usr/src/hare/stdlib and /usr/src/hare/third-party.
|
||||
FILETYPE PLUGIN *ft-hare-plugin*
|
||||
|
||||
==============================================================================
|
||||
SETTINGS *hare-settings*
|
||||
This plugin has a few different variables that can be defined inside your
|
||||
|vimrc| to tweak its behavior.
|
||||
|
||||
This plugin provides a small number of variables that you can define in your
|
||||
vimrc to configure its behavior.
|
||||
Additionally, support is provided for folding `{ }` blocks. To enable folding,
|
||||
add the following to a file inside your |after-directory| (e.g.
|
||||
~/.vim/after/ftplugin/hare.vim): >
|
||||
|
||||
*g:filetype_haredoc*
|
||||
This plugin is able to automatically detect Hare modules and set the "haredoc"
|
||||
filetype for any README files. As the recursive directory search used as a
|
||||
heuristic has a minor performance impact, this feature is disabled by default
|
||||
and must be specifically opted into: >
|
||||
let g:filetype_haredoc = 1
|
||||
<
|
||||
See |g:haredoc_search_depth| for ways to tweak the searching behavior.
|
||||
setlocal foldmethod=syntax
|
||||
|
||||
Because block-based folding tends to create many small folds, consider setting
|
||||
a few related options, such as 'foldminlines' and 'foldnestmax'.
|
||||
|
||||
*g:hare_recommended_style*
|
||||
The following options are set by default, in accordance with the official Hare
|
||||
The following options are set by default, in accordance with Hare's official
|
||||
style guide: >
|
||||
|
||||
setlocal noexpandtab
|
||||
setlocal shiftwidth=0
|
||||
setlocal softtabstop=0
|
||||
setlocal tabstop=8
|
||||
setlocal textwidth=80
|
||||
<
|
||||
To disable this behavior: >
|
||||
|
||||
To disable this behavior, add the following to your |vimrc|: >
|
||||
|
||||
let g:hare_recommended_style = 0
|
||||
<
|
||||
*g:hare_space_error*
|
||||
By default, trailing whitespace and tabs preceded by space characters are
|
||||
highlighted as errors. This is automatically turned off when in insert mode.
|
||||
To disable this highlighting completely: >
|
||||
let g:hare_space_error = 0
|
||||
<
|
||||
*g:haredoc_search_depth*
|
||||
By default, when |g:filetype_haredoc| is enabled, only the current directory
|
||||
and its immediate subdirectories are searched for Hare files. The maximum
|
||||
search depth may be adjusted with: >
|
||||
let g:haredoc_search_depth = 2
|
||||
<
|
||||
Value Effect~
|
||||
0 Only search the current directory.
|
||||
1 Search the current directory and immediate
|
||||
subdirectories.
|
||||
2 Search the current directory and two levels of
|
||||
subdirectories.
|
||||
*g:hare_symbol_operators*
|
||||
By default, symbolic operators do not receive any special highlighting (with
|
||||
`!`, `?`, and `::` being the only exceptions). To enable syntax highlighting
|
||||
for most other operators, add the following to your |vimrc|: >
|
||||
|
||||
The maximum search depth can be set to any integer, but using values higher
|
||||
than 2 is not recommended, and will likely provide no tangible benefit in most
|
||||
situations.
|
||||
let g:hare_symbol_operators = 1
|
||||
<
|
||||
*g:hare_space_error*
|
||||
By default, trailing whitespace and spaces followed by <Tab> characters will
|
||||
be highlighted as errors. This is automatically disabled in Insert mode. To
|
||||
turn off this highlighting completely, add the following to your |vimrc|: >
|
||||
|
||||
let g:hare_space_error = 0
|
||||
|
||||
|
||||
HAREDOC FILETYPE *ft-haredoc-plugin*
|
||||
|
||||
This plugin will automatically detect README files inside Hare modules, using
|
||||
a recursive directory search, and give them the "haredoc" filetype. Because
|
||||
this is such a common filename, this plugin only searches for Hare source
|
||||
files within the same directory by default.
|
||||
|
||||
*g:filetype_haredoc*
|
||||
The |g:filetype_haredoc| variable can be used to tweak the depth of this
|
||||
search, or bypass the detection of Hare documentation files altogether:
|
||||
|
||||
Value Effect~
|
||||
0 No automatic detection
|
||||
1 Search current directory only (this is the default)
|
||||
2 Search one level of subdirectories
|
||||
3 Search two levels of subdirectories
|
||||
|
||||
The search depth may be any positive integer, but values higher than `2` are
|
||||
unlikely to provide a tangible benefit in most situations.
|
||||
|
||||
|
||||
INDENTATION SETTINGS *ft-hare-indent*
|
||||
|
||||
Unlike most other settings for this plugin, the indentation settings may also
|
||||
be set per-buffer, overriding any global configuration that exists. To do
|
||||
this, simply prefix the variable with |b:| instead of |g:|.
|
||||
|
||||
*g:hare_indent_match_switch*
|
||||
By default, continuation lines for "match" and "switch" conditions are
|
||||
indented only one level: >hare
|
||||
|
||||
const file = match (os::create(path, 0o644,
|
||||
flag::WRONLY | flag::TRUNC)) {
|
||||
case let file: io::file =>
|
||||
yield file;
|
||||
// ...
|
||||
|
||||
If you instead prefer indenting them two levels, to more closely resemble "if"
|
||||
and "for" conditions, add the following line to your |vimrc|: >
|
||||
|
||||
let g:hare_indent_match_switch = 2
|
||||
<
|
||||
*g:hare_indent_case*
|
||||
By default, continuation lines for cases in "match" and "switch" expressions
|
||||
are indented two levels, to visually distinguish them from the body of the
|
||||
case: >hare
|
||||
|
||||
case ltok::I8, ltok::I16, ltok::I32,
|
||||
ltok::I64, ltok::INT =>
|
||||
// ...
|
||||
|
||||
If you prefer a different amount of indentation, you can adjust it using
|
||||
|g:hare_indent_case|. Valid values include `0`, `1`, and `2`.
|
||||
|
||||
|
||||
COMPILER SUPPORT *compiler-hare*
|
||||
|
||||
If this plugin detects a Makefile in the current directory, it will assume you
|
||||
wish to use `make` for your build system, and will leave 'makeprg' untouched.
|
||||
Otherwise, `hare build` will be used.
|
||||
|
||||
*g:hare_makeprg_params*
|
||||
When `hare build` is used, additional compiler options may be appended to
|
||||
'makeprg' with the |g:hare_makeprg_params| variable. It may also be set on a
|
||||
per-buffer basis (using |b:| instead of |g:|), overriding any global
|
||||
configuration that exists. For example: >
|
||||
|
||||
let b:hare_makeprg_params = '-lc -t o'
|
||||
|
||||
The global default is "-q", to suppress writing to stdout while building.
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
vim:ft=help:noet:ts=8:tw=78:norl:
|
||||
|
||||
@ -6718,6 +6718,7 @@ compiler-dotnet quickfix.txt /*compiler-dotnet*
|
||||
compiler-gcc quickfix.txt /*compiler-gcc*
|
||||
compiler-gnat ft_ada.txt /*compiler-gnat*
|
||||
compiler-groff quickfix.txt /*compiler-groff*
|
||||
compiler-hare ft_hare.txt /*compiler-hare*
|
||||
compiler-hpada ft_ada.txt /*compiler-hpada*
|
||||
compiler-javac quickfix.txt /*compiler-javac*
|
||||
compiler-make quickfix.txt /*compiler-make*
|
||||
@ -7508,6 +7509,10 @@ ft-gprof-plugin filetype.txt /*ft-gprof-plugin*
|
||||
ft-groff-syntax syntax.txt /*ft-groff-syntax*
|
||||
ft-gsp-syntax syntax.txt /*ft-gsp-syntax*
|
||||
ft-hare filetype.txt /*ft-hare*
|
||||
ft-hare-indent ft_hare.txt /*ft-hare-indent*
|
||||
ft-hare-intro ft_hare.txt /*ft-hare-intro*
|
||||
ft-hare-plugin ft_hare.txt /*ft-hare-plugin*
|
||||
ft-haredoc-plugin ft_hare.txt /*ft-haredoc-plugin*
|
||||
ft-haskell-syntax syntax.txt /*ft-haskell-syntax*
|
||||
ft-help-omni helphelp.txt /*ft-help-omni*
|
||||
ft-html-indent indent.txt /*ft-html-indent*
|
||||
@ -7759,9 +7764,12 @@ g:gnat.Set_Project_File() ft_ada.txt /*g:gnat.Set_Project_File()*
|
||||
g:gnat.Tags() ft_ada.txt /*g:gnat.Tags()*
|
||||
g:gnat.Tags_Command ft_ada.txt /*g:gnat.Tags_Command*
|
||||
g:gzip_exec pi_gzip.txt /*g:gzip_exec*
|
||||
g:hare_indent_case ft_hare.txt /*g:hare_indent_case*
|
||||
g:hare_indent_match_switch ft_hare.txt /*g:hare_indent_match_switch*
|
||||
g:hare_makeprg_params ft_hare.txt /*g:hare_makeprg_params*
|
||||
g:hare_recommended_style ft_hare.txt /*g:hare_recommended_style*
|
||||
g:hare_space_error ft_hare.txt /*g:hare_space_error*
|
||||
g:haredoc_search_depth ft_hare.txt /*g:haredoc_search_depth*
|
||||
g:hare_symbol_operators ft_hare.txt /*g:hare_symbol_operators*
|
||||
g:help_example_languages helphelp.txt /*g:help_example_languages*
|
||||
g:html_charset_override syntax.txt /*g:html_charset_override*
|
||||
g:html_diff_one_file syntax.txt /*g:html_diff_one_file*
|
||||
@ -8252,9 +8260,7 @@ haiku-vimdir os_haiku.txt /*haiku-vimdir*
|
||||
hangul hangulin.txt /*hangul*
|
||||
hangulin.txt hangulin.txt /*hangulin.txt*
|
||||
hare ft_hare.txt /*hare*
|
||||
hare-intro ft_hare.txt /*hare-intro*
|
||||
hare-plugin ft_hare.txt /*hare-plugin*
|
||||
hare-settings ft_hare.txt /*hare-settings*
|
||||
hare.vim ft_hare.txt /*hare.vim*
|
||||
has() builtin.txt /*has()*
|
||||
has-patch builtin.txt /*has-patch*
|
||||
has-python if_pyth.txt /*has-python*
|
||||
|
||||
Reference in New Issue
Block a user