Kevin Sawicki
e9abf1e3b9
Add wrap guide extension
...
Initially places a vertical line in each editor
at 80 characters.
2012-09-19 11:28:20 -07:00
Kevin Sawicki
47ed19f851
Substract scroll top when paging up
2012-09-19 08:52:05 -07:00
Kevin Sawicki
9ba3b74a9d
Add support for Page Up and Page Down keys
2012-09-18 19:53:23 -07:00
Corey Johnson
fab4d4e4e5
Fix TreeView spec that was failing in #MOLO
2012-09-18 17:31:47 -07:00
Corey Johnson
96e2a66065
Merge branch 'master' into making-things-easy
...
Conflicts:
.gitignore
Rakefile
2012-09-18 15:43:17 -07:00
Kevin Sawicki
8c1125457b
Persist scrollTop value of tree view
...
This will be set whenever attached
2012-09-18 15:15:06 -07:00
Nathan Sobo
7937380eed
Projects w/ EditSessions for now-deleted files can now be reloaded w/out error
2012-09-18 13:30:16 -06:00
Nathan Sobo
68effe3303
Make TreeView focus the active editor when a file is selected w/ the keyboard
2012-09-18 13:00:16 -06:00
Corey Johnson & Nathan Sobo
85c37fd652
Move atom.resourcePath to window.resourcePath
...
The resourcePath is now set using a url param. Because resourcePath is needed by require.js, it needs to be on `window` rather than `atom`.
2012-09-10 17:22:21 -07:00
Corey Johnson & Nathan Sobo
12e2fbdb14
Add support for back-references in TextMate grammars
2012-09-07 15:27:13 -07:00
Corey Johnson & Nathan Sobo
b00830cbc8
A pattern with no name
or contentName
does not insert undefined
into scope array
2012-09-07 11:20:56 -07:00
Corey Johnson
7f8531d10f
Show dev tools when specs are run
2012-09-06 15:36:28 -07:00
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
48fdf8a708
Added OnigRegExp.catpureIndices
2012-09-06 10:22:13 -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
bd1982ede1
Nix fs.async.* methods. They aren't needed now.
2012-08-30 16:12:15 -06:00
Corey Johnson & Nathan Sobo
08b9d69f59
Focus specs window before each test to ensure focus assertions pass
2012-08-30 16:11:42 -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
714a260f32
Require atom.coffee in spec-bootstrap and benchmark-bootstrap
2012-08-30 11:26:31 -06:00
Nathan Sobo
3cc2faf7c2
Add atom.showDevTools
and replace calls to $native.showDevTools
2012-08-30 11:24:01 -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
Corey Johnson & Nathan Sobo
3376dead06
fix broken spec
2012-08-08 14:54:11 -07:00
Corey Johnson & Nathan Sobo
a8c19b1692
Fix OnigRegExp spec
2012-08-08 14:52:14 -07:00
Corey Johnson & Nathan Sobo
fd295faa44
OnigRegExp.getCaptureTree only returns capture tree (no capture text)
2012-08-08 11:04:13 -06:00
Nathan Sobo
f1438f2806
Optimization: Return only arrays from getCaptureTree
...
Creating objects and setting key-value pairs is more expensive than creating arrays with numeric indices. So this squeezes a bit more performance.
2012-08-08 09:57:42 -06:00
Nathan Sobo
c6c4d6413e
Optimization attempt: Captures contain start/end position instead of text
2012-08-08 09:11:32 -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
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
82562c89dd
Name onig-reg-exp-spec correctly
2012-08-02 16:25:34 -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
058f63c01f
load all bundle grammars in window.startup
2012-08-01 17:09:29 -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
Corey Johnson & Nathan Sobo
bccd525084
Handle includes
2012-08-01 11:05:37 -07:00
Corey Johnson & Nathan Sobo
594e27b057
Parser maintains a stack of rules, which begin/end patterns mutate
2012-08-01 10:47:40 -07:00
Corey Johnson & Nathan Sobo
fbdebd644d
Revert "Handle patterns that include other patterns from the grammar repository"
...
This reverts commit 64795c032306200f05ce3b262fe58adc86e06b34.
2012-08-01 09:48:40 -07:00
Corey Johnson & Nathan Sobo
62c5da760c
Handle patterns that include other patterns from the grammar repository
2012-08-01 09:48:40 -07:00
Corey Johnson & Nathan Sobo
6af22fce67
Add specs for begin/end patterns with nested patterns.
2012-08-01 09:48:39 -07:00
Corey Johnson & Nathan Sobo
aa02785d67
Parser handles patterns w/ begin/end regexes (if begin/end are on the same line)
2012-08-01 09:48:38 -07:00
Nathan Sobo
7682f586be
Parser can tokenize lines containing simple tokens (no nested scopes yet)
2012-08-01 09:48:37 -07:00
Corey Johnson & Nathan Sobo
a2a58a3506
TextMate parser can parse single plain tokens / tokens with captures
2012-08-01 09:48:37 -07:00
Corey Johnson & Nathan Sobo
757258dd98
Include 'indices' property on OnigRegExp result with capture group indices
2012-08-01 09:48:37 -07:00
Corey Johnson & Nathan Sobo
7067c35dc0
Add CocoaOniguruma
2012-08-01 09:48:36 -07:00
Corey Johnson & Nathan Sobo
c6bae093c1
Starting on TextMate bundle support
2012-08-01 09:48:35 -07:00
Corey Johnson & Nathan Sobo
a589557aaa
Ignore bracket matching when there are multiple cursors
2012-08-01 09:47:12 -07:00
Corey Johnson & Nathan Sobo
97b492edfc
When an identical closing bracket is inserted, don't insert a new character and move cursor to the right.
2012-08-01 09:33:42 -07:00
Corey Johnson & Nathan Sobo
3a5e73aa77
Merge branch 'making-folding-better'
2012-07-30 13:43:47 -07:00
Corey Johnson & Nathan Sobo
f7614c210a
Add unfold-all and bind it to ctrl-}
2012-07-30 12:11:54 -07:00
Corey Johnson & Nathan Sobo
a7db67e68d
When DisplayBuffer.foldBufferRow is called with a buffer row that is within a fold, it folds the scope that incloses the buffer row's fold
2012-07-30 11:46:43 -07:00
Corey Johnson & Nathan Sobo
9622d6f9b3
Rename un/foldScopeContainingBufferRow to un/foldBufferRow.
...
Scope containing buffer row was a misnomer. Waiting until I implement the repeat folding feature before considering a better name.
2012-07-30 10:25:53 -07:00
Corey Johnson & Nathan Sobo
75f0438f6a
Rename fold/unfold to foldCurrentRow/unfoldCurrentRow
2012-07-30 09:58:15 -07:00
Corey Johnson & Nathan Sobo
69d059d24c
Make TreeView.moveDown work for nested/empty directories
...
If the selected entry is the last entry in a directory that *itself* is the last entry of its parent, we need to search upward through our ancestors for the first directory that has a following sibling entry. Also, if the directory is empty, the attempt to select its first element will fail, so we need to search for a next sibling as well.
2012-07-27 21:27:55 -06:00
Corey Johnson
69d7ff0a55
add unfold to display buffer
2012-07-27 16:05:56 -07:00
Corey Johnson
7ff31d1ad7
Remove toggleFold and replace with fold
2012-07-27 13:46:50 -07:00
Corey Johnson
76ffa5a2c5
change toggle-fold to fold
2012-07-27 13:45:13 -07:00
Nathan Sobo
dc662ed071
When ( [ { ' or " is inserted, insert the matching character after the cursor
2012-07-27 13:08:43 -06:00
Nathan Sobo
87f4d8c6e9
Upon inserting '(', insert matching ')' character after cursor
2012-07-27 13:02:26 -06:00
Nathan Sobo
d0d5cb534f
Merge branch 'master' of github.com:github/atom
2012-07-27 12:30:17 -06:00