我对 xtext 的格式化程序有几个问题。我正在处理一种类似 SQL 的语言。
- 我正在使用三个默认的 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 实例并再次运行以查看更改。