4

似乎有人必须努力弄清楚如何推断或建议在哪里放置右括号。我的意思是,突出显示匹配的括号很棒,但建议会更好。这是一个明确的问题吗?如果是这样,它的名字是什么(比如,我应该用什么谷歌学术?)。如果不是,为什么不呢?这是一个明显不可能/提出的问题吗?

也就是说,假设我有一些格式错误的 ruby​​ 代码:

foo.all.map { |i| i.bar }).uniq.compact.reject { |j| j.match /baz/i }

请注意,我缺少最初的括号。我正在谈论的问题是,“当我将光标移到未配对的括号上时,如何建议在开头插入括号?”

如果这不是一个糟糕的问题,为什么还没有人这样做呢?

4

1 回答 1

0

当用户键入时,可以跟踪“平衡”与“不平衡”括号。然后在括号变得不平衡时立即建议一个括号。

例如,打字(something))会建议在s. 正确放置“修复它”括号可能具有挑战性。例如,如果用户键入有一个选择:在字符串的开头或something(else))之后插入 fix-it 左括号?g

跟踪平衡的括号会相对简单:

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))

于 2011-12-13T20:40:46.000 回答