Commit Graph

552 Commits

Author SHA1 Message Date
Corey Johnson
4f2cc1f856 Add OnigRegExp.captureIndices(string, index, regexes)
Allows us to know if a zero-length regex matched.
2012-09-06 15:26:42 -07:00
Corey Johnson
4734c8cdc4 If the file name has no '.' use the file name as the extension. 2012-09-04 10:53:28 -07:00
Corey Johnson
fb039276de un-f 2012-09-04 10:52:34 -07:00
Corey Johnson
3b9310ebe4 Gutter width is sized to fit the width of the largest line number 2012-08-31 13:33:59 -07:00
Corey Johnson & Nathan Sobo
44db540528 All specs pass 2012-08-30 17:12:52 -06:00
Nathan Sobo
461ec70e7b Fix window spec 2012-08-30 16:19:38 -06:00
Corey Johnson & Nathan Sobo
b073f3e2b1 Make some assertions fuzzy to deal with sub-pixel issues. Not totally there yet 2012-08-30 16:13:13 -06:00
Corey Johnson & Nathan Sobo
bc9d9842a7 Kill atom spec. It's not worth testing this stuff right now 2012-08-30 16:10:24 -06:00
Nathan Sobo
d5ffdb153a Remove $native.saveDialog. It's replaced with atom.showSaveDialog 2012-08-30 11:08:55 -06:00
Nathan Sobo
d0c767ac15 Fix spy 2012-08-29 20:54:39 -05:00
Nathan Sobo
558ffd9cbe Spy on atom.confirm instead of $native.alert in specs 2012-08-29 20:50:47 -05:00
Corey Johnson
6f99b61dd3 Now storing a window's state based on its rootDirectory (instead of on windowNumber) 2012-08-29 10:59:45 -07:00
Corey Johnson & Nathan Sobo
12b06ddf0c Get spec suite running (lots of failures) 2012-08-27 17:36:36 -05:00
Nathan Sobo
c2c8724ad0 Initial commit 2012-08-10 13:32:19 -06:00
Corey Johnson & Nathan Sobo
26d17f7525 Fix failing spec 2012-08-23 10:45:44 -07:00
Kevin Sawicki & Nathan Sobo
1a8e36d6b7 💄 2012-08-22 13:43:46 -07:00
Kevin Sawicki
f778345b3a Add support for requiring a platform-specific stylesheet
Add a getPlatform method to the native object that
is used for requiring the platform stylesheet from
within window.coffee after the atom.css is required.

This is used to provide non-native scrollbars on Linux
for an improved look and feel.
2012-08-22 13:43:46 -07:00
Nathan Sobo
847b514164 Merge branch 'textmate'
Conflicts:
	benchmark/benchmark-helper.coffee
	benchmark/benchmark-suite.coffee
	src/app/language-mode.coffee
2012-08-09 18:57:59 -06:00
Corey Johnson
c1bd922d89 💄 2012-08-09 15:17:01 -07:00
Corey Johnson
634bebd207 Toggling comments adjusts selection's start and end columns 2012-08-09 14:38:16 -07:00
Corey Johnson
cc5ee48470 Auto-outdent lines correctly 2012-08-09 13:10:37 -07:00
Corey Johnson & Nathan Sobo
e8aaec43f7 WIP: Reworking auto-indent/outdent logic 2012-08-09 12:57:47 -06:00
Corey Johnson
19511fe8b8 Selections are restored to their original ranges after toggling comments. 2012-08-09 10:46:54 -07:00
Corey Johnson
c95ca04340 Use TextMate to toggle comments 2012-08-09 10:33:46 -07:00
Nathan Sobo
4109669284 Bold and italic fonts hose our width calculations 2012-08-08 22:31:33 -06:00
Corey Johnson & Nathan Sobo
7fe6a05594 Folding no longer relies on Ace.
Indentation is used to determine foldable regions, if the last line matches TextMate's foldEndRegex it is included in the foldable region.
2012-08-08 17:42:11 -07:00
Nathan Sobo
c8154e4e8c Use Twilight theme stylesheet based on TextMateTheme 2012-08-08 16:55:34 -06:00
Nathan Sobo
2df05e235a Break out window.applyStylesheet from window.requireStylesheet
This will be useful in applying generated stylesheets associated with themes.
2012-08-08 16:09:23 -06:00
Nathan Sobo
f559ad73a7 Make grammar handle lines that don't match *any* of the current rule's patterns
It's possible to get a match based on a lookahead, but not actually have any non-empty capture groups. This should be considered a failed match.
2012-08-08 08:59:13 -06:00
Nathan Sobo
d520d6c859 WIP: Optimization: compile a single regex for each grammar rule
We compile a giant regex out of all the individual regexes for each pattern by or'ing together a capture group for each one. Then we use the index of the matched capture group to determine which pattern actually matched, and adjust the capture indexes of the subtree to make it appear to start from index 0, so the capture indices on the pattern align properly. There is still broken-ness on more complex patterns, but basic patterns and patterns w/ captures work.
2012-08-06 18:32:55 -06:00
Nathan Sobo
7bc6a5f24b TextMateGrammar handles nested capture groups and trailing lookahead captures
Our previous implementation only allowed for a single layer of capture groups. Now we can have captures within captures. I achieved this by converting the match into a tree before generating tokens. If there are any capture scopes specified, then we will always emit a token for every capture group in the match. This may create some redundant tokens (a serious of 2 or more tokens with the same scopes), but it will at least be technically correct. I think the overhead of removing these redundancies exceeds the cost of maintaining them for now.
2012-08-06 16:35:33 -06:00
Nathan Sobo
0d6d16a438 Move TextMateGrammar.buildCaptureTree to .getCaptureTree method on OnigRegExp 2012-08-06 11:43:44 -06:00
Nathan Sobo
32fc042929 Add TextMateGrammar.buildCaptureTree, which organizes nested captures in a tree
This will be a weapon in dealing with capture groups that nest within other capture groups, and also helps deal with trailing lookahead groups that don't belong in the main match. I made it a class method because it's stateless and that made it easier to test.
2012-08-03 23:52:58 -06:00
Nathan Sobo
fd28a3577a Improve spec description 2012-08-03 23:51:14 -06:00
Corey Johnson & Nathan Sobo
0e1d3fe3a9 wip: fixing capture group problems 2012-08-03 11:38:45 -07:00
Corey Johnson & Nathan Sobo
1a243adfcf All specs pass w/ TextMateGrammar for tokenization (auto-indent disabled) 2012-08-03 12:00:05 -06:00
Corey Johnson
08a55dfcac wip: IndentationForRow almost works TextMate preferences 2012-08-02 17:02:17 -07:00
Corey Johnson & Nathan Sobo
9ca4c2c347 WIP: Loading TextMate Bundle preferences globally 2012-08-02 13:04:43 -06:00
Corey Johnson
b378620c54 Add TextMateBundle which handles all bundle loading 2012-08-02 11:38:14 -07:00
Corey Johnson
114847fb0f Update display buffer spec 2012-08-02 10:25:55 -07:00
Corey Johnson & Nathan Sobo
0a97cb0590 Tokenized buffer uses TextMate grammar 2012-08-02 10:05:09 -07:00
Corey Johnson & Nathan Sobo
b50b8eacca wip: hooking up tokenized buffer to textmate grammars 2012-08-01 17:54:08 -07:00
Corey Johnson & Nathan Sobo
370e0b896e Add TextMateGrammar.loadFromBundles() 2012-08-01 16:58:31 -07:00
Nathan Sobo
6de055aa1c Lines aren't taller when they contain an Inconsolata em dash (–) character 2012-08-01 17:04:33 -06:00
Corey Johnson & Nathan Sobo
98ef3e4243 Start on TextMateTheme object 2012-08-01 16:27:32 -06:00
Corey Johnson & Nathan Sobo
ed12f66b13 Do not insert matching bracket unless the following character is whitespace 2012-08-01 13:20:34 -07:00
Nathan Sobo
238fecb766 💄 2012-08-01 14:11:39 -06:00
Nathan Sobo
cdf20c7a15 Rename Parser to TextMateTokenizer 2012-08-01 13:58:38 -06:00
Corey Johnson & Nathan Sobo
fc1228619e Add spec for interpolated strings inside of interpolated strings 2012-08-01 11:49:45 -07:00
Corey Johnson & Nathan Sobo
487c4ed439 $self includes work 2012-08-01 11:45:30 -07:00