Commit Graph

2928 Commits

Author SHA1 Message Date
Corey Johnson
2a86e3bf61 More resolving. More extension hotness. 2011-11-03 17:42:44 -07:00
Corey Johnson
7e7bbe3f01 Multiple windows can be opened, and their buffer state is saved. 2011-11-03 15:48:19 -07:00
Corey Johnson
e4d79c6625 don't error when opening untitled buffer 2011-11-03 13:41:39 -07:00
Corey Johnson
fe734a1b11 it remembers what buffers a window has open 2011-11-02 16:57:34 -07:00
Corey Johnson
9a596734ff editor is more editorish 2011-11-02 15:22:52 -07:00
Corey Johnson
c67917efa3 tabs 2011-11-02 10:27:25 -07:00
Corey Johnson
9e21d8da04 Dirty and window title added back. Dirty close prompts user. 2011-11-01 16:07:20 -07:00
Corey Johnson
66ad5e8150 Don't send scope to string methods! 2011-11-01 13:06:56 -07:00
Corey Johnson
6724c872d2 Don't recreate the OSX Watcher class. 2011-11-01 11:29:44 -07:00
Corey Johnson
912654cddf opening paths and multiple windows is working! 2011-10-31 16:14:43 -07:00
Corey Johnson
cebd600e62 reloading be working. 2011-10-28 18:04:35 -07:00
Corey Johnson
0066ce5a01 Get rid of the noise, get rid of the funk. 2011-10-28 17:21:15 -07:00
Corey Johnson
445e5a8ce0 Every window has a path 2011-10-28 17:12:16 -07:00
Corey Johnson
8b906e40c1 actually working 2011-10-28 10:58:16 -07:00
Corey Johnson
3c976e37f3 things got a little out of hand 2011-10-27 17:45:42 -07:00
Corey Johnson
1c2a4cd728 better at absolute pathing 2011-10-26 14:21:20 -07:00
Corey Johnson
24b39115c2 consistently using fs instead of File 2011-10-26 14:21:02 -07:00
Corey Johnson
1fbe1c6055 Ported plugin.coffee to extension.coffee 2011-10-26 14:19:52 -07:00
Corey Johnson
69f2d44bcd plugins are now extensions 2011-10-26 11:46:03 -07:00
Corey Johnson
f630ac92aa only call the most recently added keybinding 2011-10-26 11:25:00 -07:00
Corey Johnson
003effe5fd Kind of starting from scratch.
Recreated the project as an xcode 4 project.
Key Bindings are working and reloading.
Got rid of everything that wasn't being used right now.
2011-10-26 11:12:18 -07:00
Corey Johnson
e64a0e64a1 wip 2011-10-26 11:10:52 -07:00
Corey Johnson
80d6222809 bring App back to bare bones 2011-10-24 11:11:05 -07:00
Corey Johnson
10c0776ff6 Added file watching. 2011-10-24 10:20:31 -07:00
Corey Johnson
9bb92a4dd5 The main pane always exists so it is independent of plugin load order. 2011-09-26 17:29:10 -07:00
Corey Johnson
6c56221afe Editor is now a plugin! This means everything is pretty modular now (and the code is a little event heavy) 2011-09-26 17:29:10 -07:00
Corey Johnson
da64efc06c this isn't working 2011-09-26 13:45:21 -07:00
Corey Johnson
226fb9e26e Moving event handling out of editor into window 2011-09-26 11:10:27 -07:00
Corey Johnson
1b4f371873 jscocoa, your weird message calling kills me. 2011-09-23 16:42:06 -07:00
Corey Johnson
5c54dd77c9 pane adds itself. 2011-09-23 16:41:41 -07:00
Corey Johnson
d8d98ca7e3 first pass at key bindings. just replicating keymaster for now. 2011-09-23 15:57:18 -07:00
Corey Johnson
dda91e39f2 editor will be a plugin, for now force keybinding
creation
2011-09-22 17:29:03 -07:00
Corey Johnson
3b5984c3f7 better error message 2011-09-22 17:05:24 -07:00
Corey Johnson
38f265f33f ALWAYS BE PATHING 2011-09-22 16:48:39 -07:00
Corey Johnson
290f519d76 Added 'load' method for plugins.
This is called after all the plugins have been
created.
2011-09-22 11:08:53 -07:00
Corey Johnson
99d3d9b3e2 So we don't screw up and press cmd-ctrl-r from
the console.

Once we get keybindings working, we won't have to worry about this causing problems.
2011-09-21 17:40:57 -07:00
Corey Johnson
91b7779179 More methods from common.js fs. 2011-09-21 17:40:04 -07:00
Corey Johnson
2ea875e700 require cleanup 2011-09-21 17:38:52 -07:00
Corey Johnson
620538a6b5 Plugin does a lot of things we thought Pane would. 2011-09-21 17:38:14 -07:00
Corey Johnson
012fc4826d Editor is starting to act more like a plugin.
Eventually it will be a plugin.
2011-09-21 17:37:39 -07:00
Corey Johnson
24073baa44 catch and report plugin errors 2011-09-21 17:37:03 -07:00
Corey Johnson
47b8d0dc02 making plugins unique to windows and 'classy'.
This checkin breaks everything BTW.
2011-09-21 14:26:44 -07:00
Corey Johnson
5270f97dcd Plugins love this guy 2011-09-21 14:24:52 -07:00
Corey Johnson
4cb47ab96f window loads plugins. prepping for plugin refactor 2011-09-20 16:54:50 -07:00
Corey Johnson
5abe161f7d Window is no longer a Pane 2011-09-20 15:26:17 -07:00
Corey Johnson
664fa5b06f bindkey takes a scope, keycap is a method 2011-09-20 15:25:36 -07:00
Corey Johnson
9eee6ad9ad Some app errors 2011-09-20 13:44:42 -07:00
Corey Johnson
1d562dce58 dumb error 2011-09-20 13:44:13 -07:00
Corey Johnson
e60fa30daa Made App a fake singleton. It only has class methods and variables. 2011-09-20 11:06:34 -07:00
Corey Johnson
c22587ab66 Moving UI stuff to Chrome.
I don't like the name Chrome, looking to rename it.
2011-09-20 11:05:19 -07:00
Corey Johnson
35ce4b3bf8 Added some warnings to require. 2011-09-20 11:02:11 -07:00
Corey Johnson
45b1f0ef64 pane storage is super simple now. 2011-09-19 11:12:18 -07:00
Corey Johnson
64dafdfad9 A simple storage scheme. 2011-09-16 16:01:13 -07:00
Corey Johnson
39080d0132 not ready yet 2011-09-16 15:35:59 -07:00
Corey Johnson
6cb88dc7e4 i want to reload vendor too 2011-09-16 14:58:18 -07:00
Corey Johnson
cc3abee58a mergin 2011-09-16 09:31:46 -07:00
Corey Johnson
7347f4c8a4 persistence, but it's too magic 2011-09-15 16:53:18 -07:00
Corey Johnson
8011e2fc7c open project first
HACK: need to make this flow cleaner
2011-09-15 16:52:23 -07:00
Corey Johnson
5a6e12234f keep these on one line? What should the rule be? 2011-09-15 16:47:55 -07:00
Corey Johnson
26901718dd keep these on one line? What should the rule be? 2011-09-15 08:57:57 -07:00
Chris Wanstrath
d50b9722a0 commas, lolz 2011-09-15 00:14:58 -07:00
Corey Johnson
7765fd06a8 Added exists 2011-09-14 11:41:04 -07:00
Corey Johnson
5f44dad5c2 When everything is done, send a loaded message.
Or maybe plugins should have a `appDidLoad` method
or something.
2011-09-14 11:40:49 -07:00
Corey Johnson
ef3fc1d278 Tab tells editor to close file. Tab is then
notified about closer.

This is in prep for reopening files on app 
relaunch.
2011-09-13 16:44:30 -07:00
Corey Johnson
4f55f4d4a0 Added toggle to Pane. Makes more sense there.
Also made pane be more jquery'y
2011-09-12 17:50:17 -07:00
Corey Johnson
e5efaffdb4 On boot, open up the most recently opened file/dir 2011-09-12 12:25:25 -07:00
Corey Johnson
a65d081855 Store the last opened path.
Just throwing stuff into localStorage seems 
sloppy. Maybe we just need some guidelines to
follow.
2011-09-12 12:24:50 -07:00
Chris Wanstrath
0b66c5483b open and save files as utf-8. fixes #23 2011-09-11 02:41:19 -07:00
Chris Wanstrath
37c6e4f64e since we're being opionated 2011-09-10 00:09:50 -07:00
Chris Wanstrath
aaf2e63dc5 you bastard. how do you not use Cmd-`? 2011-09-09 23:34:51 -07:00
Corey Johnson
d501e85a46 Remove trailing whitespace on save. Fixes #18. 2011-09-09 16:36:10 -07:00
Corey Johnson
89855a6da2 showing invisibles by default. 2011-09-09 15:44:36 -07:00
Corey Johnson
bc616d05e7 Got rid of the untitled tab.
It still gives you an empty editor document. I'd
like to get rid of this too and maybe show a
"recently opened" window.
2011-09-09 14:19:56 -07:00
Corey Johnson
475d199052 I don't think we need this anymore? It works for
me with the default timeout of 1.
2011-09-09 11:50:52 -07:00
Corey Johnson
108f0ab142 @defunkt put that in your ~/.atomicity file, it's
erring in my console!
2011-09-08 20:09:40 -07:00
Chris Wanstrath
c69ac0f49a require() loads js in strict mode
Main advantage: variables won't accidentally
leak into the global scope.

$ cat gg.js
bad = true

https://img.skitch.com/20110909-kry3pm4ask5qhj5rg43yb37tci.png
2011-09-08 18:04:23 -07:00
Chris Wanstrath
e5ccae5bd9 keymap values can be functions 2011-09-08 02:21:29 -07:00
Chris Wanstrath
6ec348068c use require.paths when resolving 2011-09-08 01:59:20 -07:00
Chris Wanstrath
22abf6497c make expandPath fit in 2011-09-08 01:59:20 -07:00
Chris Wanstrath
f293966a70 Command-Ctrl-T to run Atomicity's tests. Output is in the console. 2011-09-08 01:59:17 -07:00
Chris Wanstrath
e5a5c422a4 subtle indentation error 2011-09-08 01:00:01 -07:00
Chris Wanstrath
7ea2efaf06 delete the editor session when closing a tab 2011-09-08 00:41:41 -07:00
Chris Wanstrath
c3dc1cc3eb detect indentation, tabs vs spaces 2011-09-08 00:37:40 -07:00
Chris Wanstrath
10d02d966b disable ace workers 2011-09-08 00:29:07 -07:00
Corey Johnson
df7a81c1ec don't override cmd-q 2011-09-06 11:59:15 -07:00
Chris Wanstrath
7fd6fafb7f move handleKeyEvent into keybinder.coffee 2011-09-06 00:10:44 -07:00
Chris Wanstrath
5c7c97f3df Merge remote-tracking branch 'origin/key-bindings'
Conflicts:
	src/startup.coffee
2011-09-06 00:09:05 -07:00
Chris Wanstrath
3b8bf900a4 add @code() and @switchToSession() to Editor 2011-09-05 23:47:33 -07:00
Chris Wanstrath
36895ec5a3 editor managers a pool of edit sessions 2011-09-05 23:47:07 -07:00
Corey Johnson
18df46bbde eat the key bindings we want. 2011-09-05 10:27:07 -07:00
Chris Wanstrath
ad9028e803 cancel open 2011-09-04 19:29:43 -07:00
Chris Wanstrath
9413af5816 those guys too 2011-09-04 19:23:53 -07:00
Chris Wanstrath
1d3b31849b use keymaster instead of ace for keybindings.
keybindings now work anywhere in the window, not just when ace has
focus!
2011-09-04 19:23:52 -07:00
Chris Wanstrath
9d200700bc can't read file 2011-09-04 19:23:52 -07:00
Chris Wanstrath
d45edcd5ff addPane takes a Pane. turn project and tab plugins into Panes 2011-09-04 19:23:52 -07:00
Chris Wanstrath
45d2bdc5fd move open, openURL, new, reload, & showConsole key commands into Window 2011-09-04 19:23:52 -07:00
Chris Wanstrath
793946faf8 panes have keymaps. good or bad? 2011-09-04 19:23:52 -07:00
Chris Wanstrath
b9689679e5 Turn editor.coffee into an Editor class which subclasses Pane
This isn't great but I think it's a step in the right direction.
2011-09-04 19:23:52 -07:00
Chris Wanstrath
18b8e14134 kill unused document.coffee for now 2011-09-04 19:23:11 -07:00
Corey Johnson
819ec44e98 me too 2011-09-04 18:14:34 -07:00
Corey Johnson
b4944bbb46 missing args default to falsey, so dump them 2011-09-04 15:41:38 -07:00
Chris Wanstrath
e44414ae26 whoa 2011-09-04 14:23:48 -07:00
Chris Wanstrath
dd9f35d6b6 kill bootstrap - require.js is the only special case. 2011-09-04 14:21:57 -07:00
Chris Wanstrath
804b67f8df osx.coffee is dead.
Split Chrome into App and Window, in app.coffee and window.coffee
2011-09-04 14:17:46 -07:00
Chris Wanstrath
de2ffdf25d todo: testing 2011-09-04 13:46:56 -07:00
Chris Wanstrath
38e1065ae4 probably not true 2011-09-04 13:36:54 -07:00
Chris Wanstrath
b0c09aab18 need jscocoa in fs.coffee 2011-09-04 00:36:51 -07:00
Chris Wanstrath
67419b9b4d isDirectory 2011-09-04 00:36:51 -07:00
Chris Wanstrath
e5103c7bd6 fix fs module 2011-09-04 00:36:51 -07:00
Chris Wanstrath
f719ce3053 __defines should fit in 2011-09-04 00:36:51 -07:00
Chris Wanstrath
63f84475eb old exports 2011-09-04 00:36:51 -07:00
Chris Wanstrath
2b1e04264c kill Process, split into fs module and system module 2011-09-04 00:36:51 -07:00
Chris Wanstrath
8b0b0e4ea3 move Dir into fs.coffee and commonjs it 2011-09-04 00:36:50 -07:00
Chris Wanstrath
884686f55f move File module into fs.coffee. rename File.expand to File.absolute
absolute() is the commonjs form of expand()
2011-09-04 00:36:50 -07:00
Corey Johnson
6e73a8a442 clean up inspector creator 2011-09-03 10:38:15 -07:00
Chris Wanstrath
93add06d5f implement ../ and ./ require() prefixes 2011-09-02 19:49:35 -07:00
Chris Wanstrath
c6d0df42e3 __filename global - name of the file being require()'d 2011-09-02 19:49:30 -07:00
Corey Johnson
db24c17d22 we only need the setTimeout on the first window load. must be some magic caching going on somewhere. 2011-09-02 19:38:57 -07:00
Corey Johnson
0fcbd5a306 more coffeescriptish, i think 2011-09-02 19:37:50 -07:00
Corey Johnson
7309d86bfb these only need a tiny bit of timeout 2011-09-02 19:28:19 -07:00
Corey Johnson
4b66101755 just adding the editor pane statically 2011-09-02 19:28:05 -07:00
Corey Johnson
6d41492fd7 it's important to test your code, corey 2011-09-02 18:08:37 -07:00
Corey Johnson
b7f562dd32 Whenever a pane is added or removed, the editorUI is refreshed. 2011-09-02 18:01:39 -07:00
Corey Johnson
23e4be9f7d define takes an optional filename. This lets us grab the 'temp' object we set requires to when there are circular references.
Is this crazy, or does this make sense.
2011-09-02 18:01:39 -07:00
Corey Johnson
5d758bf358 added a resize editor method 2011-09-02 18:01:39 -07:00
Chris Wanstrath
56245f8ecc kill me now 2011-08-30 01:39:23 -07:00
Chris Wanstrath
10b6e50b11 modes plugin 2011-08-30 01:39:21 -07:00
Chris Wanstrath
23fc7223b3 export ace, emit 'save' and 'open' events 2011-08-30 01:14:35 -07:00
Chris Wanstrath
76ee406ae8 jscocoa nsstrings aren't js strings =/ 2011-08-30 01:14:35 -07:00
Chris Wanstrath
1cd9f98478 web console is where it's at
(this also fixes the reported source of a console.log
in the web inspector)
2011-08-30 01:14:35 -07:00
Chris Wanstrath
e1714c72e7 we have better debugging now, thx 2011-08-30 01:12:26 -07:00
Chris Wanstrath
c1faebd044 Social coding. 2011-08-30 01:12:26 -07:00
Chris Wanstrath
918ee8e15e Removing any parens we're not forced to use. Lean into it. 2011-08-30 01:12:24 -07:00
Chris Wanstrath
5770b38c5d we still use open() 2011-08-29 22:49:51 -07:00
Corey Johnson
01ed2ce204 export 'open' explicitly pass in the file path to open. 2011-08-29 20:37:18 -07:00
Corey Johnson
bbae26312c Helper for reloading everything.
Probably should put in my .atomicity dir but I am social coding.
2011-08-29 20:36:29 -07:00
Corey Johnson
0d045b76c8 keep the logs clean corey 2011-08-29 17:08:59 -07:00
Corey Johnson
8392019108 you can open directories
(we should open directories in new windows, but baby steps)
2011-08-29 17:05:07 -07:00
Corey Johnson
228af89b0b derp 2011-08-29 17:02:49 -07:00
Corey Johnson
88d157178b jscocoa.js holds a subset of the methods from jscocoa's class.js 2011-08-29 17:02:41 -07:00
Corey Johnson
21f3584924 get in there process 2011-08-29 17:01:38 -07:00
Corey Johnson
27759ac812 Display console with cmd-ctrl-k. how do you close the console? You can't yet.
http://www.opensource.apple.com/source/WebKit/WebKit-6531.9/mac/WebInspector/
2011-08-29 15:57:13 -07:00
Chris Wanstrath
faeb8e3661 require() takes a callback 2011-08-28 16:21:52 -07:00
Chris Wanstrath
c57a8d8112 use Array.prototype.some where corey wanted to use _.detect 2011-08-28 16:21:45 -07:00
Chris Wanstrath
76098d54ae not actually doing anything 2011-08-28 12:33:38 -07:00
Chris Wanstrath
01c4fd8978 gaaaaaaaaaaaaaah 2011-08-28 12:30:27 -07:00
Chris Wanstrath
868c0f08c2 hardcore require(). _ and $ are no longer global. ultimate victory.
CoffeeScript is still a global because it's used by require() to
open .coffee files. However, you can also load your own:

cs4 = require('my-coffee-script').CoffeeScript

🚬
2011-08-28 12:30:22 -07:00
Chris Wanstrath
cbfd4f9d80 Reloading! Add your paths here. Loading new code is as simple as Cmd+N. 2011-08-28 12:06:14 -07:00
Chris Wanstrath
bf01e562a3 add ~ support to require() 2011-08-28 12:00:35 -07:00
Chris Wanstrath
d79819f1aa kill fullscreen code (it dont work) 2011-08-28 11:37:42 -07:00
Chris Wanstrath
0c7251fe1d gross 2011-08-28 01:57:03 -07:00
Chris Wanstrath
aa47966aaa add .coffee support to require() 2011-08-28 01:51:36 -07:00
Chris Wanstrath
e288902540 moving this hax to my personal ~/.atomicity for now 2011-08-28 01:47:58 -07:00
Chris Wanstrath
223e39a617 move ~/.atomicity loading into plugins.coffee 2011-08-28 01:47:36 -07:00
Chris Wanstrath
c31111099a throw 2011-08-28 01:40:30 -07:00
Chris Wanstrath
455ddd459e plugins.coffee 2011-08-28 01:40:30 -07:00
Chris Wanstrath
d7ef98de4f don't let plugin break each other 2011-08-28 01:02:05 -07:00
Chris Wanstrath
d7661be2c1 buggin me 2011-08-28 00:56:20 -07:00
Chris Wanstrath
b2f2eb4cb7 default ext handler just reads the file's contents 2011-08-28 00:48:52 -07:00
Chris Wanstrath
ac773daff6 expose require.__modules for debugging 2011-08-28 00:43:19 -07:00
Chris Wanstrath
003776da8f boom. errors with scripts and line numbers now show up in web inspector
https://img.skitch.com/20110828-rrfnqet2y2yrxq6witst6mrscx.png

fixes #3

atomicity modules that want to export an api must use define().
this mirrors ace's module definition style so it should fit in
fine.

$, _, and CoffeeScript are now global

scripts show up as loaded

before:

https://img.skitch.com/20110828-japr2cp4ucbr4a1kmp9degs3t.png

after:

https://img.skitch.com/20110828-txc782k47gn4rb67mhbujsgkw5.png
2011-08-28 00:26:38 -07:00
Chris Wanstrath
326f91bbef use JSCocoa to eval require.js - shows up in web inspector! 2011-08-27 22:19:59 -07:00
Chris Wanstrath
bc1ffc632f dont think we need that 2011-08-27 22:19:53 -07:00
Corey Johnson
9f51505287 Export bindKey 2011-08-27 21:51:25 -07:00
Corey Johnson
90aea78c65 Moving code to a better place 2011-08-27 21:51:14 -07:00
Corey Johnson
da04cec4a9 Got to use the same export object for it to work 2011-08-27 21:27:41 -07:00
Corey Johnson
550967ffe8 __modules contains the full expanded filename. Also, a temporary empty object is set for the files __module so we can have some circular references.
This is how commonJS says to do it (I think).

Fixes #4.
2011-08-27 21:17:06 -07:00
Corey Johnson
57d81aea8d i still love you web console! 2011-08-27 19:13:34 -07:00
Corey Johnson
55f40a1b3e Expand paths of /* paths as well. 2011-08-27 18:19:00 -07:00
Corey Johnson
896a2c279b cwd could change, limit search to plugin folder in bundle. 2011-08-27 18:18:11 -07:00
Chris Wanstrath
9d54c6cc20 cleaner, way more awesome, 100x better require() 2011-08-27 16:52:08 -07:00
Chris Wanstrath
9af38c8c53 plugins/ (not working yet) 2011-08-27 15:13:12 -07:00
Chris Wanstrath
cfdce83925 require() can take absolute paths 2011-08-27 15:01:31 -07:00
Chris Wanstrath
22649889fb Dir.list only goes one level deep unless you ask it to go deeper 2011-08-27 14:46:36 -07:00
Chris Wanstrath
488697884f add support for index.js to require() 2011-08-27 14:26:52 -07:00
Chris Wanstrath
64516b7242 File.expand './dir' 2011-08-27 14:14:59 -07:00
Chris Wanstrath
80c643b136 fuuu ui bug 2011-08-27 04:13:32 -07:00
Chris Wanstrath
409a77c485 gigantic ass reorg. let me know if this breaks. 2011-08-27 03:55:56 -07:00