Bracket matching explained

Bracket matching, also known as brace matching or parentheses matching, is a syntax highlighting feature of certain text editors and integrated development environments that highlights matching sets of brackets (square brackets, curly brackets, or parentheses) in languages such as Java, JavaScript, and C++ that use them. The purpose is to help the programmer navigate through the code and also spot any improper matching, which would cause the program to not compile or malfunction. If a closing bracket is left out, for instance, the compiler will not know that the end of a block of code has been reached. Bracket matching is particularly useful when many nested if statements, program loops, etc. are involved.

Implementations

Vim's % command does bracket matching,[1] and NetBeans has bracket matching built-in.[2] Bracket matching can also be a tool for code navigation. In Visual Studio[3] C++ 6.0, bracket matching behavior was set to ignore brackets found in comments. In VSC 7.0, its behavior was changed to compute commented brackets.[4] IntelliJ IDEA's Ruby on Rails plugin also enables bracket matching.[5] It has been proposed that Perl 5 be modified to facilitate bracket matching.[6] The Microsoft Excel 2003 formula bar has parentheses matching. Its implementation shows all the pairs of parentheses as different colors, so it is possible to easily analyze them all at once.

Example

In this example, the user has just typed the closing curly brace '}' defining a code block, and that brace and its corresponding opening brace are both highlighted.

for (int i = 0; i < 10; i++)

System.out.println(i); }

Notes and References

  1. http://heather.cs.ucdavis.edu/~matloff/ProgEdit/ProgEdit.html#L2314 Norm Matloff's Text-Editor Web Page for Programming Students
  2. Web site: Overview (Editor Braces Matching) . 2008-03-09 . https://web.archive.org/web/20120525034649/http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-editor-bracesmatching/overview-summary.html . 2012-05-25 . dead .
  3. http://msdn.microsoft.com/en-us/library/be94e8aw.aspx Automatic Brace Matching in Visual Studio
  4. http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=100587 Feedback: braces matching behavior
  5. Web site: IntelliJ IDEA supports Ruby and Ruby on Rails AjaxLine . 2008-03-09 . https://web.archive.org/web/20100922121814/http://ajaxline.com/node/344 . 2010-09-22 . dead .
  6. http://dev.perl.org/perl6/rfc/145.html Brace-matching for Perl Regular Expressions – perl6