Commit Graph

812 Commits

Author SHA1 Message Date
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
fa4650343b Make meta-n (new window) work 2012-08-28 17:04:56 -07:00
Corey Johnson & Nathan Sobo
2515a45480 Load user configuration files 2012-08-28 16:51:29 -07:00
Corey Johnson & Nathan Sobo
ee841d14e7 Better error reporting for failed extensions 2012-08-28 16:11:38 -07:00
Corey Johnson & Nathan Sobo
ff290d68d2 💄 2012-08-28 15:42:55 -07:00
Nathan Sobo
74bf4db5fc WIP: pushing message id to front of message data so browser process can reply 2012-08-28 17:20:49 -05:00
Nathan Sobo
502e52f37d Implement atom.open using atom.sendMessageToBrowserProcess 2012-08-28 16:47:19 -05:00
Nathan Sobo
16c7c523cf Native open code now presents the open panel from the browser process
This avoids retina resolution issues and ink framework errors that occur when opening dialogs from the chromium renderer process.
2012-08-28 13:54:44 -05:00
Corey Johnson & Nathan Sobo
8fcf2af5a6 WIP: Handling reload, but need to put js dialog handler in proper place 2012-08-27 17:27:15 -07:00
Corey Johnson & Nathan Sobo
d20ba7171a Assign $windowNumber in index.html 2012-08-27 17:09:53 -07:00
Corey Johnson & Nathan Sobo
12b06ddf0c Get spec suite running (lots of failures) 2012-08-27 17:36:36 -05:00
Nathan Sobo
138de0cb5c Update window.coffee from CEF 1 atom 2012-08-27 11:06:18 -05:00
Nathan Sobo
c3e748a17c WIP: Use rake to start compiling resources (like require.coffee) 2012-08-26 16:29:46 -05:00
Nathan Sobo
c2c8724ad0 Initial commit 2012-08-10 13:32:19 -06:00
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
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
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
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
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