似乎有人必须弄清楚如何推断或建议在哪里放置右括号。我的意思是,突出显示匹配的括号很棒,但建议会更好。这是一个明确的问题吗?如果是这样,它的名字是什么(比如,我应该用什么 Google Scholar?)。如果没有,为什么不呢?这是一个明显不可能/提出不当的问题吗?
也就是说,假设我有一些格式错误的 ruby 代码:
foo.all.map { |i| i.bar }).uniq.compact.reject { |j| j.match /baz/i }
请注意,我缺少初始括号。我正在谈论的问题是,“当我将光标移到未配对的括号上时,如何建议在开头插入括号?”
如果这不是一个不好提出的问题,为什么还没有人这样做呢?
最佳答案
可以在用户键入时跟踪“平衡”与“不平衡”括号。然后在括号变得不平衡时建议一个括号。
例如,输入 (something))
会在 s
之前建议一个开头括号。正确放置“修复”括号可能具有挑战性。例如,如果用户输入 something(else))
,则有一个选择:在 g
之后或字符串的开头插入 fix-it 开头括号?
跟踪平衡括号相对简单:
int parenCount = 0
event keyUp(char c){
if(c is close-paren){
parenCount--;
}else if(c is open-paren){
parenCount++;
}
if(parenCount < 0){
// missing an open-paren somewhere
}
}
// handle missing close-parens when user finished typing the string...
// for example if user types "myObject.something(" and hits enter
可能还需要像
a.doSomethingWith((aNumber))
一样寻找不必要的括号关于parsing - 推断开/关括号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8494635/