タグ付けされた質問 「smie」

2
明確なSMIEドキュメントはありますか?
あらゆる種類のSMIEインデントルール/文法/何かを機能させるために、今では何時間も費やしています。 それが実際にどのように機能するかについてのドキュメント付きの小さな、おもちゃまたはスケルトンSMIEベースのモードの例、またはそれを使用する方法についての議論はどこにありますか?たとえば、式をセミコロンで終わるトークンの文字列として定義し、ブロックを角かっこ以外の式として定義します。本当に、本当に簡単ですか? 特定の質問:smie-config-show-indentを使用すると、90%の時間で ':list-intro ""-> nil'という応答が返されます。式または式のリストの定義に基づいたリストイントロとは何ですか?なぜnilと言っても、次の行をインデントするのですか?どうすれば変更できますか? 第二に:私の文法と私のスミルールの間に何か関係はありますか?それらは両方ともsmie-setupに渡されるためだと思いますが、たとえば、ブロックを識別する文法に基づいて、「 'block'が表示されたら、内容をインデント」と言う方法が見つかりません。 。 第三に、SMIEには多くのルールが「組み込まれている」ようです。開始するだけで、ブラケット、ブレース、括弧などの一般的な処理が可能になります。これらのルールを確認または変更する方法はありますか?それとも、構文テーブルがこれをすべて行っており、SMIEが文字通りまったく何もしていないということです(私は疑い始めています)。 最後に、SMIEをデバッグしようとすると、「編集、評価モードバッファー、他のバッファーのサンプルコードに移動、MX <my mode>、テスト」サイクルを実行しようとしますが、各回でルールがクリアされないようです前のサイクル。define-derived-modeがクリーンシートから開始されることをどのようにして確認できますか?私はそこに(kill-all-local-variables)を持っていますが、それは十分ではないと思われ、emacsを閉じる必要があります。 ハイライト(font-lock-defaultsを使用しているため、実際にはSMIEでさえない)を除いて、漠然と動作するものすら何もないので、私が持っているものの例を投稿していません。本当の赤ちゃんのステップが必要です。
18 indentation  smie 

2
新しいメジャーモードの言語文法を書くためのオプションは何ですか?
文法が明確なプログラミング言語のメジャーモードを書いています。BNFがあり、いくつかのハッピーファイルで形式化されています。 私は特に、BNFを一連の順方向/逆方向の正規表現スキャンとして再実装したくはありません(多くの主要モードがそうであるように)。手動または自動で変換することに反対はしません。 私はSMIEを認識しています。Emacslispで使用できる他のオプションを使用して、言語の文法を定義し、顔、sexpコマンド、imenu集団など、可能な限り自動的に生成することができます。 私は主に、生のパフォーマンスではなく、モードの単純さと正確さに関心がありますが、トレードオフが何であるかを大まかに知りたいと思います(明らかに、パフォーマンスが低すぎると、使用できなくなり、したがって、使用するのは適切ではありません)。 Emacs Lispマニュアルの「Major Modes」ですべてをすでに認識しているため、これはメジャーモードの記述に多少関係があります。 更新:私はSemanticの作者と調査して話しましたが、font-locks を生成することはできません。より高いレベルのツールを提供することを目的としており、私が探しているものではありません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.