我对xtext的格式化程序几乎没有疑问。我正在处理类似SQL的语言。
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实例并再次运行以查看更改。