Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sungwoncho/match-bracket
Find matching brackets in code
https://github.com/sungwoncho/match-bracket
Last synced: 3 months ago
JSON representation
Find matching brackets in code
- Host: GitHub
- URL: https://github.com/sungwoncho/match-bracket
- Owner: sungwoncho
- Created: 2015-10-05T04:25:09.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2015-10-25T05:22:08.000Z (about 9 years ago)
- Last Synced: 2024-10-09T09:42:33.983Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 180 KB
- Stars: 5
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Match-Bracket
[![Build Status](https://travis-ci.org/sungwoncho/match-bracket.svg?branch=master)](https://travis-ci.org/sungwoncho/match-bracket)
Find the matching bracket's position for a bracket in a code.
## Install
npm install match-bracket
## Usage
Given this code:
**sample.js**
```javascript
File.prototype.getExtension = function() {
var re = /[A-Za-z]*(\.[a-z]+)$/g;
var matched = re.exec(this.path);if (matched) {
var ext = matched[1];
return ext;
} else {
return 'none';
}
};
```We can find the matching bracket for the first `{` by doing:
```javascript
var matchBracket = require('match-bracket');var code = require('fs').readFileSync('./sample.js');
var bracketPos = {line: 1, cursor: 42};var result = matchBracket(code, bracketPos);
console.log(result);
// => {line: 11, cursor: 1}
```## API
### matchBracket(code, bracketPos, extension)
Returns the position of the matching bracket of the bracket given by
`bracketPos` from the `code`.`extension` is an optional argument. It allows match-bracket to recognize
comments in the code and get more accurate results.Both `bracketPos` and `result` are in the format of:
```javascript
{
line: // line number,
cursor: // cursor number
}
````line` is the line number in which the bracket appears. `cursor` denotes order
in which the bracket appears in the line. Most IDEs display this.## Rules
* Unmatched bracket returns results with null as properties.
```javascript
matchBracket('({)', {line: 1, cursor: 2});
// => {line: null, cursor: null}
```* In ambiguous matches, brackets closest to each other are matched.
```javascript
matchBracket('(()', {line: 1, cursor: 1});
// => {line: null, cursor: null}matchBracket('(()', {line: 1, cursor: 2});
// => {line: 1, cursor: 3}
```## License
MIT