From 45d5e714fa43788cca4aa86a93daca02d9dfb0d9 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 30 Jan 2013 15:25:03 -0800 Subject: [PATCH 1/7] Make snippets keymaps valid CSON Closes #209 --- src/packages/snippets/keymaps/snippets-1.cson | 2 +- src/packages/snippets/keymaps/snippets-2.cson | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/packages/snippets/keymaps/snippets-1.cson b/src/packages/snippets/keymaps/snippets-1.cson index c8bf63c51..ce982b6a2 100644 --- a/src/packages/snippets/keymaps/snippets-1.cson +++ b/src/packages/snippets/keymaps/snippets-1.cson @@ -1,2 +1,2 @@ -window.keymap.bindKeys '.editor' +'.editor': 'tab': 'snippets:expand' diff --git a/src/packages/snippets/keymaps/snippets-2.cson b/src/packages/snippets/keymaps/snippets-2.cson index 6b660c6fd..9cf7b49e5 100644 --- a/src/packages/snippets/keymaps/snippets-2.cson +++ b/src/packages/snippets/keymaps/snippets-2.cson @@ -1,6 +1,6 @@ # it's critical that these bindings be loaded after those snippets-1 so they # are later in the cascade, hence breaking the keymap into 2 files -window.keymap.bindKeys '.editor' +'.editor': 'tab': 'snippets:next-tab-stop' 'shift-tab': 'snippets:previous-tab-stop' From aeb1e3fd3ccdb91f0896fa55e18145875d1bd7c9 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 30 Jan 2013 16:53:36 -0700 Subject: [PATCH 2/7] Add a script to fix the author w/ git-filter-branch --- script/fix-author | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100755 script/fix-author diff --git a/script/fix-author b/script/fix-author new file mode 100755 index 000000000..bbbd3b3da --- /dev/null +++ b/script/fix-author @@ -0,0 +1,17 @@ +#!/bin/sh + +usage() { + echo "usage: $0 sha name email" + exit 1 +} + +if [ ! $3 ]; then + usage +fi + +git filter-branch -f --env-filter " +export GIT_AUTHOR_NAME='$2' +export GIT_AUTHOR_EMAIL='$3' +export GIT_COMMITTER_NAME='$2' +export GIT_COMMITTER_EMAIL='$3' +" -- $1..HEAD \ No newline at end of file From 4e7b1888b4789b03e79fb18b0eb08cf26c0c7811 Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Wed, 30 Jan 2013 16:03:55 -0800 Subject: [PATCH 3/7] include ' in editor.nonWordCharacters --- src/app/editor.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/editor.coffee b/src/app/editor.coffee index 2234ece09..2769b6cba 100644 --- a/src/app/editor.coffee +++ b/src/app/editor.coffee @@ -20,7 +20,7 @@ class Editor extends View autosave: false autoIndent: true autoIndentOnPaste: false - nonWordCharacters: "./\\()\"’-_:,.;<>~!@#$%^&*|+=[]{}`~?" + nonWordCharacters: "./\\()\"'-_:,.;<>~!@#$%^&*|+=[]{}`~?" @content: (params) -> @div class: @classes(params), tabindex: -1, => From 45dfea055943ab025527ae63b5d452e3f672ff60 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 30 Jan 2013 16:12:14 -0800 Subject: [PATCH 4/7] Start tracking commands when package is activated When the command logger was moved to a deferred package the custom trigger to track events wasn't registered until the instance was created causing most events to go untracked. Now the custom trigger is registered in the index.coffee file and passed to the view instance when toggling. --- src/packages/command-logger/index.coffee | 24 ++++++++++++++++++- .../src/command-logger-view.coffee | 24 +++---------------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/src/packages/command-logger/index.coffee b/src/packages/command-logger/index.coffee index 39dd9ad68..027035980 100644 --- a/src/packages/command-logger/index.coffee +++ b/src/packages/command-logger/index.coffee @@ -1,4 +1,5 @@ DeferredAtomPackage = require 'deferred-atom-package' +$ = require 'jquery' module.exports = class CommandLogger extends DeferredAtomPackage @@ -7,4 +8,25 @@ class CommandLogger extends DeferredAtomPackage instanceClass: 'command-logger/src/command-logger-view' - onLoadEvent: (event, instance) -> instance.toggle() + activate: (rootView, state={})-> + super + + @eventLog = state.eventLog ? {} + rootView.command 'command-logger:clear-data', => @eventLog = {} + + registerTriggeredEvent = (eventName) => + eventNameLog = @eventLog[eventName] + unless eventNameLog + eventNameLog = + count: 0 + name: eventName + @eventLog[eventName] = eventNameLog + eventNameLog.count++ + eventNameLog.lastRun = new Date().getTime() + originalTrigger = $.fn.trigger + $.fn.trigger = (eventName) -> + eventName = eventName.type if eventName.type + registerTriggeredEvent(eventName) if $(this).events()[eventName] + originalTrigger.apply(this, arguments) + + onLoadEvent: (event, instance) -> instance.toggle(@eventLog) diff --git a/src/packages/command-logger/src/command-logger-view.coffee b/src/packages/command-logger/src/command-logger-view.coffee index 01496a2d0..4a5f89df5 100644 --- a/src/packages/command-logger/src/command-logger-view.coffee +++ b/src/packages/command-logger/src/command-logger-view.coffee @@ -1,12 +1,11 @@ {$$$} = require 'space-pen' ScrollView = require 'scroll-view' -$ = require 'jquery' _ = require 'underscore' module.exports = class CommandLoggerView extends ScrollView @activate: (rootView, state) -> - @instance = new CommandLoggerView(rootView, state?.eventLog) + @instance = new CommandLoggerView(rootView) @content: (rootView) -> @div class: 'command-logger', tabindex: -1, => @@ -31,29 +30,12 @@ class CommandLoggerView extends ScrollView 'tree-view:directory-modified' ] - initialize: (@rootView, @eventLog={}) -> + initialize: (@rootView) -> super - @rootView.command 'command-logger:clear-data', => @eventLog = {} @command 'core:cancel', => @detach() - registerEvent = (eventName) => - eventNameLog = @eventLog[eventName] - unless eventNameLog - eventNameLog = - count: 0 - name: eventName - @eventLog[eventName] = eventNameLog - eventNameLog.count++ - eventNameLog.lastRun = new Date().getTime() - - originalTrigger = $.fn.trigger - $.fn.trigger = (eventName) -> - eventName = eventName.type if eventName.type - registerEvent(eventName) if $(this).events()[eventName] - originalTrigger.apply(this, arguments) - - toggle: -> + toggle: (@eventLog={}) -> if @hasParent() @detach() else From 9a2db263932a238bc6ded6e79cd656c2a0c54093 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 30 Jan 2013 17:54:16 -0800 Subject: [PATCH 5/7] Set white-space property to nowrap on editor lines Allows inline-block elements adding to the line to no be wrapped when the window is resized. Closes #211 --- static/editor.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/static/editor.css b/static/editor.css index 0b8cfb452..66d71d345 100644 --- a/static/editor.css +++ b/static/editor.css @@ -104,3 +104,7 @@ pointer-events: none; z-index: -1; } + +.editor .line { + white-space: nowrap; +} From 983f1ab18b08cd226e7dd29b6b048347cb7f80ea Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 30 Jan 2013 18:32:08 -0800 Subject: [PATCH 6/7] Bind meta-~ to focus previous window Closes #212 --- native/atom_cef_client.cpp | 2 ++ native/atom_cef_client.h | 1 + native/atom_cef_client_mac.mm | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+) diff --git a/native/atom_cef_client.cpp b/native/atom_cef_client.cpp index 38c25470b..3acb53951 100644 --- a/native/atom_cef_client.cpp +++ b/native/atom_cef_client.cpp @@ -141,6 +141,8 @@ bool AtomCefClient::OnKeyEvent(CefRefPtr browser, ToggleDevTools(browser); } else if (event.modifiers == EVENTFLAG_COMMAND_DOWN && event.unmodified_character == '`') { FocusNextWindow(); + } else if (event.modifiers == (EVENTFLAG_COMMAND_DOWN | EVENTFLAG_SHIFT_DOWN) && event.unmodified_character == '~') { + FocusPreviousWindow(); } else { return false; diff --git a/native/atom_cef_client.h b/native/atom_cef_client.h index 75b787138..d1961d8d3 100644 --- a/native/atom_cef_client.h +++ b/native/atom_cef_client.h @@ -105,6 +105,7 @@ class AtomCefClient : public CefClient, bool m_HandlePasteboardCommands = false; void FocusNextWindow(); + void FocusPreviousWindow(); void Open(std::string path); void Open(); void OpenUnstable(std::string path); diff --git a/native/atom_cef_client_mac.mm b/native/atom_cef_client_mac.mm index c20bd5fbe..be4879d97 100644 --- a/native/atom_cef_client_mac.mm +++ b/native/atom_cef_client_mac.mm @@ -23,6 +23,24 @@ void AtomCefClient::FocusNextWindow() { } } +void AtomCefClient::FocusPreviousWindow() { + NSArray *windows = [NSApp windows]; + int count = [windows count]; + int start = [windows indexOfObject:[NSApp keyWindow]]; + + int i = start; + while (true) { + i = i - 1; + if (i == 0) i = count -1; + if (i == start) break; + NSWindow *window = [windows objectAtIndex:i]; + if ([window isVisible] && ![window isExcludedFromWindowsMenu]) { + [window makeKeyAndOrderFront:nil]; + break; + } + } +} + void AtomCefClient::Open(std::string path) { NSString *pathString = [NSString stringWithCString:path.c_str() encoding:NSUTF8StringEncoding]; [(AtomApplication *)[AtomApplication sharedApplication] open:pathString]; From f126f589210a5e6e359efa1ff9e74395a7f670fb Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 30 Jan 2013 19:18:10 -0800 Subject: [PATCH 7/7] Revert "Set white-space property to nowrap on editor lines" This reverts commit 9a2db263932a238bc6ded6e79cd656c2a0c54093. --- static/editor.css | 4 ---- 1 file changed, 4 deletions(-) diff --git a/static/editor.css b/static/editor.css index 66d71d345..0b8cfb452 100644 --- a/static/editor.css +++ b/static/editor.css @@ -104,7 +104,3 @@ pointer-events: none; z-index: -1; } - -.editor .line { - white-space: nowrap; -}