人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

YAMLのアンカーではアンダースコアに特別な意味が?

アンカーを記述したYAMLファイルをEmacsのyaml-modeで表示すると、アンダースコア以降が違う色で表示されます。アンダースコアには特別な意味があるのでしょうか?

yaml-mode: https://github.com/yoshiki/yaml-mode

ちなみに、Ruby標準添付のYAMLライブラリでは、アンダースコア以降もアンカー名として認識されています。

1307170376
●拡大する

●質問者: しおり
●カテゴリ:コンピュータ
✍キーワード:Emacs Ruby YAML アンカー スコア
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● a-kuma3
●150ポイント ベストアンサー

The Official YAML Web Site を見ても、アンダースコアには、エスケープされた場合を除けば、特別な意味を持たせてないですね。


yaml-mode.el の 208行目は余計だと思います。

 (modify-syntax-entry ?_ "_" yaml-mode-syntax-table)
◎質問者からの返答

Emacs Lispはあまり読めないのですが、yaml-node-anchor-alias-reの定義を見ると"_"じゃなくて"w"な気がするんですがどうなんでしょう?

一応"w"にするとアンダースコア以降も同じ色で表示されました。

-----

あっ、でも仕様書の5.6. Miscellaneous Charactersを見ると、"_"はWord (alphanumeric) characters for identifiersの一部ではないですね。


2 ● a-kuma3
●50ポイント

あっ、でも仕様書の5.6. Miscellaneous Charactersを見ると、"_"はWord (alphanumeric) characters for identifiersの一部ではないですね。

でも、Mapping の key が "Word" のみで構成されなければいけない、とは、どこにも書いてない(気がする)。


GNU Emacs Lispリファレンスマニュアル: Syntax Class Table を見ると、"w" は、YAML の "Word" に近くて、"_" は、「シンボル構成文字」だって書いてあるから、

意味としては "_" でも良いような気がする。


yaml-node-anchor-alias-re の定義では、正規表現としての "\w" なので、シンボル構成文字の意味とはちょっと違います。


# ごめんなさい、全然、回答になってません m(_ _)m

◎質問者からの返答

Emacs Lispはやっぱりわかりません(^^;

でも仕様書でアンカー名に使える文字の定義を見つけました。

6.9.2. Node Anchors

アンダースコアもアンカー名に使えるので、yaml-modeの問題のようですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ