Commit Graph

279 Commits

Author SHA1 Message Date
Nathan Sobo
d37a0dd916 Cache repeated regexp matches against the same string for another 5-10% boost
This is tricky… basically when the scanner is matching across the same string repeatedly, it can recycle previous results if the following conditions are true:

- The string is the same
- We're matching at a position >= the last position
- The result for the regex is a failure or starts >= the current start position
2012-09-27 15:53:02 -06:00
Nathan Sobo
840790645b Release OnigScanner's regexes in the destructor 2012-09-27 15:53:01 -06:00
Kevin Sawicki
d8011fe853 Add initial markdown preview extension
Uses the GitHub Markdown API to render the current
editor contents for .md and .markdown files.
2012-09-27 13:07:22 -07:00
Nathan Sobo
32e36700ae Add native OnigScanner, which handles matching multiple regexes on a line
This cuts the tokenization time from 250ms to 70ms by avoiding js <-> native overhead
2012-09-27 13:04:14 -06:00
Corey Johnson
871a230b03 Make $native.exists a tiny bit faster 2012-09-26 16:30:22 -07:00
Corey Johnson
a6352497b9 Merge branch 'master' of https://github.com/github/atom 2012-09-25 13:22:24 -07:00
Nathan Sobo
df98c3e9d7 Add "Window" menu 2012-09-25 12:03:26 -06:00
Corey Johnson
cf48665a03 Open Atom src when run via Xcode 2012-09-25 09:57:48 -07:00
Nathan Sobo
bea3c88ea1 In FocusNextWindow, require that window is visible before trying to focus it 2012-09-24 21:18:44 -06:00
Corey Johnson
23917ab675 Merge branch 'master' of https://github.com/github/atom 2012-09-24 15:55:53 -07:00
Corey Johnson
cccebda665 Stop when position equals the start position (not always 0) 2012-09-24 15:47:03 -07:00
Nathan Sobo
df0c19482c Hack in a workaround to cycle windows with meta-`
There's something wrong with CEF 3 right now where meta-` events aren't being forwarded to cocoa correctly. I just added some code to intercept meta-` and manually cycle the windows. I ignore any windows for which `excludeFromWindowsMenu` is true. That means we don't ever cycle to the hidden menu.
2012-09-24 16:32:05 -06:00
Corey Johnson
ea18840798 Remove unused methods from onig_reg_exp.js 2012-09-24 11:53:52 -07:00
Corey Johnson
831e6ba231 Window starts with no name by default 2012-09-21 16:48:36 -07:00
Corey Johnson
2665a64a78 I remove useless comments 2012-09-21 16:47:44 -07:00
Corey Johnson
efab25a1d1 Merge remote-tracking branch 'origin/master' into making-things-easy 2012-09-21 16:37:29 -07:00
Kevin Sawicki
5c78ebff42 Use platform independent extension header files 2012-09-20 16:24:20 -07:00
Kevin Sawicki
7ef3bab130 Make install script 32-bit only 2012-09-20 16:24:20 -07:00
Kevin Sawicki
8da096b7cd Use include instead of import 2012-09-20 16:24:20 -07:00
Kevin Sawicki
d4fc3f41fc Remove unneeded import 2012-09-20 16:24:20 -07:00
Kevin Sawicki
8a570ab1b5 Add 64-bit cef libraries 2012-09-20 16:24:20 -07:00
Kevin Sawicki
13a3592af7 Remove cache miss error text 2012-09-20 16:24:10 -07:00
Kevin Sawicki
3c24fb1a34 Remove commented out code 2012-09-20 16:24:10 -07:00
Kevin Sawicki
ed77dc0916 Remove unused fields 2012-09-20 16:24:10 -07:00
Kevin Sawicki
0f42668718 Use std namespac 2012-09-20 16:24:10 -07:00
Kevin Sawicki
9901901c72 Remove unneeded includes 2012-09-20 16:24:10 -07:00
Kevin Sawicki
8f3438710f Remove old onig extension 2012-09-20 16:24:10 -07:00
Kevin Sawicki
981ef3e0b6 Remove unneded curlies 2012-09-20 16:24:10 -07:00
Kevin Sawicki
405ec2fe8d Remove logging 2012-09-20 16:24:09 -07:00
Kevin Sawicki
d006262c23 Remove old native handler 2012-09-20 16:24:09 -07:00
Kevin Sawicki
4d07f406ca Use message_translation from parent folder 2012-09-20 16:24:09 -07:00
Kevin Sawicki
54acfd507f Reload when message says so 2012-09-20 16:24:09 -07:00
Kevin Sawicki
28bd2f7d06 Move pak files and images to static folder 2012-09-20 16:24:09 -07:00
Kevin Sawicki
7a27a43e53 Set window icon before showing 2012-09-20 16:24:08 -07:00
Kevin Sawicki
97756ee90b Move linux extensions to v8_extensions folder 2012-09-20 16:24:08 -07:00
Kevin Sawicki
f90f827429 Remove /atom ignore line
Executable is now created in out folder
2012-09-20 16:24:08 -07:00
Kevin Sawicki
048f114987 Use includes from parent folder 2012-09-20 16:24:08 -07:00
Kevin Sawicki
859f058e2d Update build and install for new location 2012-09-20 16:24:08 -07:00
Kevin Sawicki
09f0a162bc Remove commented code 2012-09-20 16:24:08 -07:00
Kevin Sawicki
75c383ab98 Move linux folder under native 2012-09-20 16:24:08 -07:00
Corey Johnson
5b9a305bba Log console messages to NSLog (so we can see them in Console.app) 2012-09-20 15:26:26 -07:00
Corey Johnson
d3443ad2f1 Remove non-posix (i.e. -long_argument_with_one_leading_hyphen) added by OS X from the command line 2012-09-20 15:13:45 -07:00
Corey Johnson
4b8b4ef91c A hack to get DevTools showing properly 2012-09-18 17:15:13 -07:00
Corey Johnson
a1939da395 Command line arguments with no variable don't crash the app. 2012-09-18 16:49:27 -07:00
Corey Johnson & Nathan Sobo
ff07710556 Atom cli can be called multiple times. Successive calls will open the given path in the existing Atom process. 2012-09-12 17:06:28 -07:00
Corey Johnson & Nathan Sobo
e2700395cf 💄 2012-09-12 16:50:24 -07:00
Corey Johnson & Nathan Sobo
c0f479b3a3 If multiple instances of Atom are open, abort the new Atom process and send it's path arguments to the existing Atom process via IPC. 2012-09-12 16:13:36 -07:00
Corey Johnson & Nathan Sobo
ab18eaa211 Make parseArguments a class method 2012-09-12 16:12:17 -07:00
Corey Johnson & Nathan Sobo
5ae185c4f5 Remove unused code 2012-09-12 15:29:01 -07:00
Corey Johnson & Nathan Sobo
bda3bcac4e Merge branch 'making-things-easy' of github.com:github/atom into making-things-easy 2012-09-12 10:25:11 -07:00
Corey Johnson
28bd8ea459 wip 2012-09-11 17:38:27 -07:00
Corey Johnson
528f6ce967 Remove NSLog 2012-09-11 09:08:50 -07:00
Corey Johnson
dc1d6e529f Remove debug.xcconfig
No longer using $RESOURCE_PATH in rake file.
2012-09-11 08:14:50 -07:00
Corey Johnson & Nathan Sobo
0ade1cd185 Remove debug.xcconfig
No longer using $RESOURCE_PATH in rake file.
2012-09-10 20:20:30 -07:00
Corey Johnson & Nathan Sobo
bebe95504a wip 2012-09-10 17:29:07 -07:00
Corey Johnson & Nathan Sobo
d5831710c9 Move AtomApplication argument methods from the class to the instance 2012-09-10 17:24:10 -07:00
Corey Johnson & Nathan Sobo
6570aedbb0 Making rake install almost work 2012-09-10 17:23:05 -07:00
Corey Johnson
9d830f9ef4 Remove rogue log 2012-09-10 17:22:21 -07: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
949abdcd19 Pass argc and argv to CefInitialize 2012-09-10 17:22:21 -07:00
Corey Johnson & Nathan Sobo
10c36191ec Zero-length start patterns work.
Add zero-length captures back into OnigRegEx.BuildCaptureIndices to see zero length captures. Handle zero-length captures by continuing to scan line. Does not handle infinite loop possibility yet.
2012-09-07 10:07:54 -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 & Nathan Sobo
c9c138491e Add atom.exit, which exits from the browser process instead of the renderer 2012-08-31 10:15:12 -06:00
Corey Johnson & Nathan Sobo
27335661dc WIP: Getting specs and benchmarks running from the command line 2012-08-30 18:10:05 -06:00
Corey Johnson & Nathan Sobo
20dd59194b Handle title change. But there's a bug in CEF that makes this only work once. 2012-08-30 17:42:53 -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
b31589d6df If there is a RESOURCE_PATH defined, open that by default 2012-08-30 10:39:54 -07:00
Corey Johnson
6cb10a0855 Commented code deserves to die 2012-08-30 10:39:54 -07:00
Corey Johnson
35f603793d Make default window size big enough to show the dev tools console icon 2012-08-30 10:39:54 -07:00
Corey Johnson
b0096ee0e6 Only non-mac versions of the app need to run CefExecuteProcess in their main function. 2012-08-30 10:39:54 -07: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
eaafa9eade Merge branch 'master' of github.com:github/atom-cef3
Conflicts:
	native/atom_cef_client.cpp
2012-08-30 11:05:50 -06:00
Nathan Sobo
8b5b7de6e0 Add atom.showSaveDialog
Reply messages now always begin with an array of the reply id and the callback index.
2012-08-30 10:52:35 -06:00
Corey Johnson
9c7c95f413 Update C++ headers 2012-08-30 09:11:01 -07:00
Corey Johnson
b4f617c657 Remove util.h 2012-08-30 09:07:39 -07:00
Corey Johnson
d2e517f5a3 💄 2012-08-30 08:54:18 -07:00
Nathan Sobo
3cc8297460 Fix merge screw-up 2012-08-29 23:27:30 -06:00
Nathan Sobo
c24c9e2003 Merge branch 'master' of github.com:github/atom-cef3
Conflicts:
	native/atom_cef_client.h
	native/atom_cef_client_mac.mm
	src/app/atom.coffee
2012-08-29 23:08:31 -06:00
Nathan Sobo
63a0746cc5 Remove $native.alert 2012-08-29 20:53:04 -05:00
Nathan Sobo
725a6548fc Add atom.confirm, which displays a confirmation w/ buttons that fire callbacks
This communicates back to the browser process to display the confirmation, then the browser replies to the message with the index of the clicked button.
2012-08-29 18:31:49 -05:00
Corey Johnson
e741c42aae meta-alt-i toggles hides DevTools while DevTools is active. 2012-08-29 16:03:13 -07:00
Corey Johnson
5ff8a5524e Set dev tools view to the correct size 2012-08-29 15:38:10 -07:00
Corey Johnson
2dbd095cdc rename process_helper_mac.cpp to main_helper_mac.mm 2012-08-29 15:36:01 -07:00
Corey Johnson
d9dc526425 DevTools are working 2012-08-29 15:31:06 -07:00
Corey Johnson
9660cf0074 Merge branch 'master' of github.com:github/atom-cef3 2012-08-29 14:37:21 -07:00
Corey Johnson
9277a4371d Added method for creating browser to AtomWindowController 2012-08-29 14:37:17 -07:00
Nathan Sobo
dfdcce9785 Merge branch 'master' of github.com:github/atom-cef3
Conflicts:
	native/atom_cef_client.cpp
2012-08-29 15:34:17 -05:00
Nathan Sobo
ff309c3c18 Skipping the first element of the message argument list because its a message id 2012-08-29 15:33:36 -05:00
Corey Johnson
0937681d57 Merge branch 'master' of github.com:github/atom-cef3 2012-08-29 13:33:30 -07:00
Nathan Sobo
9d203b9425 Merge branch 'master' of github.com:github/atom-cef3
Conflicts:
	src/app/atom.coffee
2012-08-29 15:19:06 -05:00
Nathan Sobo
fcc012eb11 Messages from the browser process call atom.messageReceivedFromBrowserProcess
This is how we will handle replies from dialogs presented in the browser process.
2012-08-29 15:07:10 -05:00
Corey Johnson
f107474059 Remove all default context menu items 2012-08-29 12:27:24 -07:00
Corey Johnson
10e5c85a75 Store localStorage in ~/Library/Application\ Support/Atom 2012-08-29 11:42:43 -07:00
Corey Johnson
7c04a183de 💄 2012-08-29 11:42:18 -07: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
073164c584 Remove newWindow from native extension 2012-08-29 08:56:57 -07:00
Corey Johnson
fa4650343b Make meta-n (new window) work 2012-08-28 17:04:56 -07:00
Corey Johnson
fad214d6d9 💄 2012-08-28 17:01:02 -07:00
Nathan Sobo
9029e2f591 Nuke native open code in v8_extensions/atom.mm 2012-08-28 16:54:25 -07:00
Corey Johnson & Nathan Sobo
f6a55ee468 Throw exception if fs.list's path argument is null or empty 2012-08-28 16:47:36 -07:00
Corey Johnson & Nathan Sobo
2b2b857804 Only add pathToOpen to url params if it exists. 2012-08-28 16:46:44 -07:00
Corey Johnson & Nathan Sobo
726bd805e2 open nil, not an empty path 2012-08-28 16:45:59 -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
7bfc97c4c4 Nuke native open code in v8_extensions/atom.mm 2012-08-28 17:04:54 -05:00
Nathan Sobo
502e52f37d Implement atom.open using atom.sendMessageToBrowserProcess 2012-08-28 16:47:19 -05:00
Nathan Sobo
87a0f93149 Add atom.sendMessageToBrowserProcess to atom v8 extension 2012-08-28 16:42:11 -05:00
Nathan Sobo
76b10aa85b 💄 2012-08-28 16:05:00 -05:00
Nathan Sobo
ce147837e3 Focus windows when they are opened 2012-08-28 16:04:44 -05:00
Nathan Sobo
12a6aca77c Display prompt (still un-retina-fied) when reloading w/ unsaved buffers 2012-08-28 15:32:26 -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
48a31ecdb8 💩 2012-08-28 10:51:36 -07:00
Corey Johnson & Nathan Sobo
4781d477cd Remove tabs and handle key events when there are no windows open. 2012-08-28 10:37:25 -07:00
Nathan Sobo
71f453a3e0 More cleanup in AtomApplication 2012-08-28 12:30:19 -05:00
Nathan Sobo
7882f70c0c Whitespace 💄 2012-08-28 11:58:24 -05:00
Nathan Sobo
f0dbe5db94 Break out AtomCefRenderProcessHandler so it's only included in the helper app
This means that none of the extension code has to be compiled into the browser app, which just seems cleaner.
2012-08-28 11:55:17 -05:00
Nathan Sobo
a4a87917ba Put the other v8 extensions in the v8_extensions namespace 2012-08-28 11:16:27 -05:00
Nathan Sobo
76b8f42bb7 Add atom extension, which implements atom.open
We send a message from the render process to the browser process indicating which path to open. Also start introducing a `v8_extensions::` namespace to contain the extensions.
2012-08-28 11:08:50 -05:00
Nathan Sobo
b08db363f0 Use UnderlayOpenGLHostingWindow as the NSWindow subclass in AtomWindow.xib
Apparently this is required for full acceleration. Taking it on faith.
2012-08-28 10:13:23 -05:00
Nathan Sobo
4da7d4d08b Make AtomCefClient a JSDialogHandler and suppress dialog on reloads 2012-08-28 10:01:00 -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
64a0fd84a7 WIP: sending reload message to render process on meta-r 2012-08-27 18:39:12 -05:00
Corey Johnson & Nathan Sobo
12b06ddf0c Get spec suite running (lots of failures) 2012-08-27 17:36:36 -05:00
Corey Johnson & Nathan Sobo
da35ca4c44 Add OnigRegExp 2012-08-27 15:00:38 -07:00
Corey Johnson & Nathan Sobo
5141aba658 Move all extension C and JavaScript code into native/v8_extensions 2012-08-27 14:02:05 -07:00
Corey Johnson & Nathan Sobo
c4639b894e path 💄 2012-08-27 13:30:04 -07:00
Corey Johnson & Nathan Sobo
e8aa1524c7 Rename atom folder to native 2012-08-27 13:21:59 -07:00