問題タブ [stringtemplate-4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
stringtemplate-4 - StringTemplate のパディング/配置
Q: StringTemplate v4 で (固定幅を実現するために) 属性の左または右にスペース パディングを追加する適切な方法は何ですか?
StringTemplate を使用して、Java コードからスクリプト テキストを生成し始めています。出力テキストで、属性を縦に並べるためにスペースを埋めたい場合があります。そうするとき、パディングが左にあるか右にあるかを制御したいと思います。
NumberRenderer が Formatter.format() を使用し、「printf スタイル」のフォーマット文字列を許可していることがわかります。
私は文字列で同じことをしたい...例えば "%-30s"
しかし、StringRenderer が同じ Formatter.format() コードを使用していないことに困惑しています。
また、StringTemplate4 JavaDoc には、他のタイプの String 関連の AttributeRenderer も見当たりません。
これは、これを達成するために使用すべき別のメカニズムがあるのではないかと考えさせます。
Q: StringTemplate v4 で (固定幅を実現するために) 属性の左または右にスペース パディングを追加する適切な方法は何ですか?
ありがとう、マイケル
java - 特定のテンプレートに定義された属性の StringTemplate リスト
私は StringTemplate 4 を使い始めており、データベースに保存されている単純な文字列からテンプレートを作成しようとしています。私は次のようなものを使用します:
template に定義された属性のすべてまたはそれよりも少ない数を定義すると、すべてが正常に機能しますsomeTemplateName
。存在しない属性を追加しようとすると、次の例外が発生します。
これは理にかなっています。ただし、 template にどの属性が定義されているかを事前に知る方法はないようですsomeTemplateName
。私は次のようなものを見つけることを期待していました:
しかし、そのような方法はありません。私は正しいですか?これを回避する方法はありますか?
antlr4 - Antlr 4 および stringtemplate 4 を使用した PL/SQL コードの Java への変換
Antlr 4 と StringTemplate 4 を使用して、PL/SQL コードを Java に変換できるトランスレータを構築しようとしています。PL/SQl の文法を持っており、PL/SQL 用のパーサーを既に構築していますが、アプローチ方法がわかりません。さらに問題。antlr と stringtemplate を使用した言語翻訳の記事を多数見つけましたが、それらはすべて ANTLR 3 または ANTLR 2 を使用しています。Antlr 4 を使用した PL/SQL のパーサーには Antlr3 よりもいくつかの違いがあったため、Antlr 4 を使用して Stringtemplate と一緒に変換する場合に違いはありますか
私はプログラミング言語の翻訳にまったく慣れていないので、問題に取り組むためのより良い方法があるかどうかわかりません。
stringtemplate-4 - StringTemplate は Iterable をサポートしていますか/できますか
任意のデータ構造に格納されたデータのコレクションを繰り返し処理したいと考えています。私が持っている唯一のインターフェースは Iterable です。これは StringTemplate で可能ですか?
stringtemplate-4 - stringtemplate ModelAdaptor はデフォルトの stringtemplate プロパティ評価にフォールバックできますか?
stringtemplate に提供するクラスに ModelAdaptor を提供する場合、テンプレートでアクセスしたいすべてのプロパティに応答する必要があるようです。通常の命名規則に従わないプロパティに対して getProperty を実装できるようにしたいと考えていますが、デフォルトの動作で「通常の」プロパティを処理できるようにしたいと考えています。通常の動作を取得するためにサブクラス化できるクラスはありますか (おそらく、実装したプロパティではない場合に super() を呼び出すだけ、またはデフォルトの stringtemplate ロジックを取得するために呼び出すことができるメソッド)?
つまり、アダプターで例外的なプロパティだけを処理したいと考えています。
java - stringtemplate v4 でカスタム関数を実装する
StringTemplate v3 では、実際のハッシュマップ ルックアップを行う代わりに、提供されたキーで関数を呼び出し、関数の結果を返すカスタム Java HashMap 実装がありました。この HashMap のインスタンスを属性として stringtemplate に追加します。これにより、StringTemplate でカスタム関数を記述できるようになります。次のように呼び出します。
と
myfunc HashMap は、ここで String 型のキーを取得します。
+ との連結は v4 ではもはや不可能であり、提案された変更は "value" + v を無名テンプレートにすることです:
この場合、ST オブジェクトが HashMap に渡され、それに対して「render()」を呼び出して、通常取得するテキストを生成できますが、属性「v」は周囲のスコープから渡されなくなりました。ST オブジェクトが周囲のスコープ (ST) を見つけた場合、属性をコピーしてこれを機能させるにはどうすればよいですか??
コードを次のように変更したくありません
私たちには大きなコードベースがあり、これは非常に破壊的な変更であるためです。
ここで私が望むものを達成する他の方法はありますか? 文字列引数を使用してJava関数を呼び出し、テンプレートに値を返そうとしています。文字列引数は、囲んでいるスコープの属性にアクセスできる式です。
stringtemplate-4 - StringTempate4 エラーを修正するにはどうすればよいですか: コンテキストは、宣言された 1 つの引数を持つテンプレートに 2 つの引数を渡しました
これは StringTemplate4 から変更されたテストです。エラーが発生します。
これはエラーです:
「v」がどこかで展開されているようですが、よくわからないのでエラーの意味がわかりません。このコードを書く正しい方法は何ですか?