1

xtext のフォーマッタについていくつか質問があります。私はSQLのような言語を扱っています。

  • コメント用に 3 つのデフォルトの setLinewrap() コマンドを使用しています。SL_COMMENTただし、 の後にスペースが挿入されます。

お気に入り

UPDATE plays SET scores = scores - [ 12, 21 ] WHERE id = '123-afde'; // removes all occurences of 12 and 21 from scores

SELECT * FROM myTable WHERE t = now(); 

なる

UPDATE plays SET scores = scores - [ 12, 21 ] WHERE id = '123-afde';
// removes all occurences of 12 and 21 from scores
 SELECT * FROM myTable WHERE t = now ( );

その余分なスペースを削除できますか?

  • 行が長すぎる場合にのみ特定の場所で折り返す方法は? 試しsetLinewrap(0, 1, 1)ましたが、うまくいきません。

例えば

UPDATE table SET a = a + 1 WHERE a > 0;

UPDATE tablelongna SET c = c + 1 WHERE c IN (1, 2, 3, 4, 4, 5, 6, 7, 0, 7, 8);

なる

UPDATE table SET a = a + 1 WHERE a > 0;

UPDATE tablelongna SET c = c + 1 
WHERE c IN (1, 2, 3, 4, 4, 5, 6, 7, 0, 7, 8);
  • 私は使用setLinewrap(2).after(T_SEMICOLON);していますが、通常のケースでは問題なく動作します。ただし、バッチクエリの場合

このような

BEGIN BATCH
    UPDATE ......;

    UPDATE ......;

APPLY BATCH;

NEXT QUERY.....

上書きしようとしsetLinewrap(1).before(K_APPLY);ていますが、うまくいきません。使用できないsetNoSpace()か、setNoLinewrap()それ以外APPLY BATCHの場合は独自の行がありません。

  • フォーマッタですべてのキーワードを大文字に置き換えることはできますか? 元。select * from foo;SELECT * FROM foo;。すべての API が空白/改行のみを操作できるように見えますか?

  • それが私の問題かどうかはわかりませんが、デバッグモードでフォーマッタをホットスワップできません。変更を確認するには、別の Eclipse インスタンスを終了して再度実行する必要があります。

4

0 に答える 0