Kevin Sawicki & Nathan Sobo
4eb3c2d67b
Assign global 'platform' variable on window at eval time
2012-08-22 13:43:46 -07:00
Kevin Sawicki & Nathan Sobo
c53f87fcba
Only require platform stylesheet if it exists
...
Make requireStylesheet throw exception if the stylesheet does not exist
2012-08-22 13:43:46 -07:00
Kevin Sawicki & Nathan Sobo
c87c0da35e
Don't explode when require.resolve doesn't find a file. Return null instead.
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
92be14d9fa
Snippets are not auto-indented when they are inserted.
2012-08-09 16:21:04 -07:00
Corey Johnson
65d40557ff
InsertText takes an option to turn autoIndent off
2012-08-09 16:20:45 -07:00
Corey Johnson
cd8e6a7f20
Don't auto-indent ff a grammar doesn't have an indent/outdent regex
2012-08-09 16:04:23 -07:00
Corey Johnson
7477511a9f
Create empty token on empty lines
2012-08-09 15:17:46 -07:00
Corey Johnson
634bebd207
Toggling comments adjusts selection's start and end columns
2012-08-09 14:38:16 -07:00
Corey Johnson
34934d58f9
previousNonBlankRow returns null if passed row 0
2012-08-09 14:19:12 -07:00
Corey Johnson
9e53751717
Revert "Add setTextInBufferRange to edit session"
...
This reverts commit ea86ec401b .
2012-08-09 13:25:53 -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 & Nathan Sobo
ad4b3db439
Add OnigRegExp.test
2012-08-09 12:57:20 -06:00
Corey Johnson
fae452770b
Language mode no longer uses Ace for anything
2012-08-09 10:49:54 -07: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
Corey Johnson
92d706b52b
Add class method lineCOmmentStringForScope to TextMateBundle
2012-08-09 10:33:31 -07:00
Corey Johnson
ea86ec401b
Add setTextInBufferRange to edit session
2012-08-09 10:33:25 -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
fa65510287
Use IR_Black as the default color scheme
2012-08-08 17:50:53 -07: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
Corey Johnson & Nathan Sobo
926a44fba8
Remove unused code
2012-08-08 17:42:11 -07:00
Corey Johnson & Nathan Sobo
c7586a0e97
Rename matchingCharachters to pairedCharachters
2012-08-08 17:42:10 -07:00
Nathan Sobo
8c5e77d325
Move theme activation to RootView
2012-08-08 17:04:54 -06: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
Corey Johnson & Nathan Sobo
2a945838f5
Return absolute minimum capture data from OnigRegExp
2012-08-08 12:13:54 -07:00
Corey Johnson & Nathan Sobo
472e5348e2
Update TextMateGrammar to use optimized array-based capture trees
2012-08-08 11:04:36 -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
Corey Johnson & Nathan Sobo
827b3e29d3
Implement OnigRegExp.getCaptureTree natively
2012-08-07 16:20:02 -07:00
Corey Johnson & Nathan Sobo
39dbcb15b7
Include end pattern in compiled regexes. Also Compile regexes for pushed rules.
2012-08-07 12:07:24 -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
6878d19a6a
OnigRegExp.getCaptureTree does not include empty child captures
2012-08-06 18:27:39 -06:00
Nathan Sobo
a85345e392
Add OnigRegExp.getCaptureCount
2012-08-06 18:27:14 -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
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
2d3e2b53a3
Passes TextMateBundle spec
2012-08-02 13:23:15 -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
81f83482b0
Rename File.getName and Directory.getName to .getBaseName
2012-08-02 11:37:49 -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
0cdc042e71
Use text as the default grammar
2012-08-01 17:24:28 -07:00
Corey Johnson & Nathan Sobo
058f63c01f
load all bundle grammars in window.startup
2012-08-01 17:09:29 -07:00