Esse commit está contido em:
Chris Wanstrath
2011-08-18 23:46:35 -07:00
commit 3d47221d74
4 arquivos alterados com 82 adições e 36 exclusões
+5 -16
Ver Arquivo
@@ -9,14 +9,10 @@ editor.getSession().setTabSize 2
filename = null
save = ->
str = OSX.NSString.stringWithString editor.getSession().getValue()
str.writeToFile_atomically filename, true
File.write filename, editor.getSession().getValue()
saveAs = ->
panel = OSX.NSSavePanel.savePanel
if panel.runModal isnt OSX.NSFileHandlingPanelOKButton
return null
if file = panel.filenames.lastObject
if file = Chrome.savePanel()
filename = file
App.window.title = _.last filename.split('/')
save()
@@ -33,15 +29,10 @@ bindKey = (name, shortcut, callback) ->
sender: 'editor'
bindKey 'open', 'Command-O', (env, args, request) ->
panel = OSX.NSOpenPanel.openPanel
if panel.runModal isnt OSX.NSFileHandlingPanelOKButton
return null
if file = panel.filenames.lastObject
if file = Chrome.openPanel()
filename = file
App.window.title = _.last filename.split('/')
code = OSX.NSString.stringWithContentsOfFile file
code = File.read file
env.editor.getSession().setValue code
bindKey 'saveAs', 'Command-Shift-S', (env, args, request) ->
@@ -52,9 +43,7 @@ bindKey 'save', 'Command-S', (env, args, request) ->
bindKey 'copy', 'Command-C', (env, args, request) ->
text = editor.getSession().doc.getTextRange editor.getSelectionRange()
pb = OSX.NSPasteboard.generalPasteboard
pb.declareTypes_owner [OSX.NSStringPboardType], null
pb.setString_forType text, OSX.NSStringPboardType
Chrome.writeToPasteboard text
bindKey 'eval', 'Command-R', (env, args, request) ->
eval env.editor.getSession().getValue()
+8 -20
Ver Arquivo
@@ -9,17 +9,11 @@
editor.getSession().setTabSize(2);
filename = null;
save = function() {
var str;
str = OSX.NSString.stringWithString(editor.getSession().getValue());
return str.writeToFile_atomically(filename, true);
return File.write(filename, editor.getSession().getValue());
};
saveAs = function() {
var file, panel;
panel = OSX.NSSavePanel.savePanel;
if (panel.runModal !== OSX.NSFileHandlingPanelOKButton) {
return null;
}
if (file = panel.filenames.lastObject) {
var file;
if (file = Chrome.savePanel()) {
filename = file;
App.window.title = _.last(filename.split('/'));
return save();
@@ -38,15 +32,11 @@
});
};
bindKey('open', 'Command-O', function(env, args, request) {
var code, file, panel;
panel = OSX.NSOpenPanel.openPanel;
if (panel.runModal !== OSX.NSFileHandlingPanelOKButton) {
return null;
}
if (file = panel.filenames.lastObject) {
var code, file;
if (file = Chrome.openPanel()) {
filename = file;
App.window.title = _.last(filename.split('/'));
code = OSX.NSString.stringWithContentsOfFile(file);
code = File.read(file);
return env.editor.getSession().setValue(code);
}
});
@@ -61,11 +51,9 @@
}
});
bindKey('copy', 'Command-C', function(env, args, request) {
var pb, text;
var text;
text = editor.getSession().doc.getTextRange(editor.getSelectionRange());
pb = OSX.NSPasteboard.generalPasteboard;
pb.declareTypes_owner([OSX.NSStringPboardType], null);
return pb.setString_forType(text, OSX.NSStringPboardType);
return Chrome.writeToPasteboard(text);
});
bindKey('eval', 'Command-R', function(env, args, request) {
return eval(env.editor.getSession().getValue());
+32
Ver Arquivo
@@ -0,0 +1,32 @@
# This is the CoffeeScript API that wraps all of Cocoa.
# Handles the UI chrome
Chrome =
# Returns null or a file path.
openPanel: ->
panel = OSX.NSOpenPanel.openPanel
if panel.runModal isnt OSX.NSFileHandlingPanelOKButton
return null
panel.filenames.lastObject
# Returns null or a file path.
savePanel: ->
panel = OSX.NSSavePanel.savePane
if panel.runModal isnt OSX.NSFileHandlingPanelOKButton
return null
panel.filenames.lastObject
writeToPasteboard: (text) ->
pb = OSX.NSPasteboard.generalPasteboard
pb.declareTypes_owner [OSX.NSStringPboardType], null
pb.setString_forType text, OSX.NSStringPboardType
# Handles the file system
File =
read: (path) ->
OSX.NSString.stringWithContentsOfFile path
write: (path, contents) ->
str = OSX.NSString.stringWithString contents
str.writeToFile_atomically path, true
+37
Ver Arquivo
@@ -0,0 +1,37 @@
(function() {
var Chrome, File;
Chrome = {
openPanel: function() {
var panel;
panel = OSX.NSOpenPanel.openPanel;
if (panel.runModal !== OSX.NSFileHandlingPanelOKButton) {
return null;
}
return panel.filenames.lastObject;
},
savePanel: function() {
var panel;
panel = OSX.NSSavePanel.savePane;
if (panel.runModal !== OSX.NSFileHandlingPanelOKButton) {
return null;
}
return panel.filenames.lastObject;
},
writeToPasteboard: function(text) {
var pb;
pb = OSX.NSPasteboard.generalPasteboard;
pb.declareTypes_owner([OSX.NSStringPboardType], null);
return pb.setString_forType(text, OSX.NSStringPboardType);
}
};
File = {
read: function(path) {
return OSX.NSString.stringWithContentsOfFile(path);
},
write: function(path, contents) {
var str;
str = OSX.NSString.stringWithString(contents);
return str.writeToFile_atomically(path, true);
}
};
}).call(this);