*ft_hare.txt*	Hare プログラミング言語のサポート

==============================================================================
☆内容							*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| 内で定義できるいくつかの異
なる変数がある。

さらに、`{ }` ブロックの折り畳みもサポートされている。折り畳みを有効にするに
は、|after-directory| 内のファイル (例えば、~/.vim/after/ftplugin/hare.vim) に
以下のコードを追加する: >

	setlocal foldmethod=syntax

ブロックベースの折り畳みでは小さな折り畳みが多数作成される傾向があるため、
'foldminlines' や 'foldnestmax' などの関連するオプションをいくつか設定すること
を検討すること。

						*g:hare_recommended_style*
Hare の公式スタイルガイドに従って、次のオプションがデフォルトで設定されている:
>
	setlocal noexpandtab
	setlocal shiftwidth=0
	setlocal softtabstop=0
	setlocal tabstop=8
	setlocal textwidth=80

この動作を無効にするには、|vimrc| に次の行を追加する: >

	let g:hare_recommended_style = 0
<
						*g:hare_symbol_operators*
デフォルトでは、記号演算子は特別な構文ハイライト表示を受けない (`!`、`?`、`::`
のみ例外)。他のほとんどの演算子の構文ハイライトを有効にするには、|vimrc| に以
下の行を追加する: >

	let g:hare_symbol_operators = 1
<
							*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| 変数を使用すると、この検索の深さを微調整したり、Hare ド
キュメントファイルの検出を完全にバイパスしたりできる:

	値		効果~
	0		自動検出なし
	1		カレントディレクトリのみを検索 (これがデフォルト)
	2		サブディレクトリの 1 階層を検索
	3		サブディレクトリの 2 階層を検索

検索の深さは任意の正の整数にすることができるが、ほとんどの場合、 `2` より大き
い値では目に見える利点が得られない可能性がある。


☆インデント設定					*ft-hare-indent*

このプラグインの他のほとんどの設定とは異なり、インデント設定はバッファごとに設
定でき、既存のグローバル設定を上書きできる。これを行うには、変数の先頭に |g:|
ではなく |b:| を付ける。

						*g:hare_indent_match_switch*
デフォルトでは、"match" および "switch" 条件の継続行は 1 レベルだけインデント
される: >hare

	const file = match (os::create(path, 0o644,
		flag::WRONLY | flag::TRUNC)) {
	case let file: io::file =>
		yield file;
	// ...

代わりに 2 レベルインデントして、"if" 条件と "for" 条件に近づけたい場合
は、|vimrc| に次の行を追加する: >

	let g:hare_indent_match_switch = 2
<
							*g:hare_indent_case*
デフォルトでは、"match" 式と "switch" 式の場合の継続行は 2 レベルインデントさ
れ、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' に
追加のコンパイラオプションを指定できる。また、バッファごとに設定することも可能
である (|g:| の代わりに |b:| を使用)。その場合、既存のグローバル設定は上書きさ
れる。例: >

	let b:hare_makeprg_params = '-lc -t o'

グローバルのデフォルトは "-q" で、ビルド中に標準出力への書き込みを抑制する。

==============================================================================
 vim:tw=78:ts=8:noet:ft=help:norl:
