問題タブ [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 - StringTemplate の中括弧
次の StringTemplate では、 の後の右中括弧が原因で、「無効な文字 '}'」例外が発生しますreturn null;
。
次のような出力が必要です。
この閉じ中括弧をエスケープするにはどうすればよいですか?
stringtemplate - StringTemplate4 のカスタム フォーマット関数
文字列テンプレートのカスタム フォーマット関数を作成する方法を知りたいです。次のコードがあるとしましょう:
現在、関数 customformat の動作は次のとおりです。
入力: "hello world" -> 出力: "HELLO WORLD"
出力が次のようになるように、 customformat 関数を変更したいと思います。
入力: "hello world" -> 出力: "HELLO_WORLD"
java - StringTemplateでエラーメッセージを取得するには?
StringTemplate からコンパイル時のエラー メッセージを文字列として取得するにはどうすればよいですか?
たとえば、このコード:
「無効になったのは私にとって完全な驚きでした」のようなものを単にログに記録しますが、このエラーメッセージを UI に表示したいと考えています。
ErrorManager
でアクセスできますstg.errMgr
。私はここのような方法を期待してgetErrors()
いましたが、ありません...
stringtemplate - stringtemplate.org テンプレートで置換する属性として GUID を使用する
テンプレート (stringtemplate.org 4 エンジン) で GUID を置換する属性として使用する方法、または stringtemplate の表現力を低下させて区切り文字間の値を属性ルックアップ以外のものとして評価しない方法はありますか?
例: 以下は Antlr4.StringTemplate.Compiler.TemplateException で失敗します。
java - StringTemplate インデントは、文字列内に空白を追加します
これは明らかにSSCCEです。
次のテンプレート ファイルがあります。
...次のコードで:
コードは以下を生成します。
つまり、空白が追加されると文字列値が変更されます。クライアントが XML ファイルを解析すると、空白がトリミングされていても、文字列内に空白が追加されているため、文字列値が変更されたものとして認識されます。
テンプレートを次のように宣言することが解決策であることを理解しています。
...しかし、このソリューションでも、xml
レンダリングを含む可能性のある他のすべてのノードも右揃えにする必要があります。
たとえば、上記のレンダリングされた値が別のテンプレートに埋め込まれていると仮定すると、次のテンプレート:
... また、次のように書き直す必要があります。
...実際には、すべてのノードを左揃えにする必要があります。
StringTemplate に特定の String パラメーターをそのまま出力するように指示する方法はありますか (新しい行が存在する場合はインデントせずに)、同時に他のすべての場合に空白/インデントを保持します (私のレンダリングされた出力が醜い)?
アップデート
NoIndentWriterを使用してみましたが、別の問題が発生しました。そのため、NoIndentWriter
実際には複数行の文字列をそのまま出力しますが、テンプレート ファイルに存在する空白を尊重しないようです。だから私は振り出しに戻っています。
c# - StringTemplate 4 でコンマをリスト区切りとして使用する
項目のコンマ区切りリストを作成する必要があります: $subjects : {sub | $sub.Name$}separator=", "$ これはうまくいかないようです。セパレータを使用する正しい方法は何ですか? 項目のコンマ区切りリストを作成する別の方法はありますか?
c# - TemplateGroupDirectory の使用に関する問題
アプリケーションの実行可能ファイルに関連する「Templates」という名前のディレクトリにいくつかのテンプレート ファイルを置き、それらを使用したいと考えています。たとえば、1 つのテンプレート ファイルの名前は「Globals.st」です。
そのようにして、TemplateGroupDirectory を作成し、テンプレートをロードしました。
テンプレートのインスタンスを取得しようとすると、NullReferenceException が発生するというメッセージが表示されました。
私は何が欠けていますか?