Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

atomic-emacs class for all key bindings, toggle command, startup pref #155

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,15 @@ Or in Atom:

There's no need to restart Atom.

Use shift-ctrl-space to activate/deactivate emacs key bindings.

There is a setting to control whether emacs bindings are active when Atom starts.

## Commands

### Activation
'shift-ctrl-space': 'atomic-emacs:toggle'

### Navigation

'ctrl-b': 'atomic-emacs:backward-char'
Expand Down
45 changes: 24 additions & 21 deletions keymaps/atomic-emacs.cson
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
'atom-workspace':
'shift-ctrl-space': 'atomic-emacs:toggle'

'atom-workspace.atomic-emacs':
'ctrl-g': 'core:cancel'
'alt-x': 'command-palette:toggle'
'ctrl-x ctrl-c': 'application:quit'
Expand All @@ -11,28 +14,28 @@
'ctrl-x 1': 'atomic-emacs:close-other-panes'
'ctrl-x o': 'window:focus-next-pane'

'body.platform-darwin':
'body.platform-darwin .atomic-emacs':
'cmd-x': 'atomic-emacs:cut'
'cmd-c': 'atomic-emacs:copy'

'body.platform-linux':
'body.platform-linux .atomic-emacs':
'shift-delete': 'atomic-emacs:cut'
'ctrl-insert': 'atomic-emacs:copy'
'ctrl-x': 'atomic-emacs:cut'
'ctrl-c': 'atomic-emacs:copy'

# For command palette, buffer switcher, etc. on Linux.
'body.platform-linux .select-list atom-text-editor.mini':
'body.platform-linux .atomic-emacs .select-list atom-text-editor.mini':
'ctrl-p': 'core:move-up'
'ctrl-n': 'core:move-down'

'body.platform-win32':
'body.platform-win32 .atomic-emacs':
'shift-delete': 'atomic-emacs:cut'
'ctrl-insert': 'atomic-emacs:copy'
'ctrl-x': 'atomic-emacs:cut'
'ctrl-c': 'atomic-emacs:copy'

'atom-workspace atom-text-editor':
'atom-workspace.atomic-emacs atom-text-editor':
# Navigation
'ctrl-b': 'atomic-emacs:backward-char'
'left': 'atomic-emacs:backward-char'
Expand Down Expand Up @@ -107,7 +110,7 @@
'ctrl-x ctrl-w': 'core:save-as'
'alt-.': 'symbols-view:go-to-declaration'

'atom-text-editor:not(.autocomplete-active):not(.mini)':
'.atomic-emacs atom-text-editor:not(.autocomplete-active):not(.mini)':
# Navigation
'ctrl-p': 'atomic-emacs:previous-line'
'up': 'atomic-emacs:previous-line'
Expand All @@ -126,55 +129,55 @@
'ctrl-d': 'core:delete'
'ctrl-e': 'editor:move-to-end-of-screen-line'

'.platform-linux atom-workspace atom-text-editor:not([mini]),
.platform-win32 atom-workspace atom-text-editor:not([mini])':
'.platform-linux atom-workspace.atomic-emacs atom-text-editor:not([mini]),
.platform-win32 atom-workspace.atomic-emacs atom-text-editor:not([mini])':
'ctrl-j': 'editor:newline'

'.platform-linux atom-workspace atom-text-editor:not(.autocomplete-active):not([mini]),
.platform-win32 atom-workspace atom-text-editor:not(.autocomplete-active):not([mini])':
'.platform-linux atom-workspace.atomic-emacs atom-text-editor:not(.autocomplete-active):not([mini]),
.platform-win32 atom-workspace.atomic-emacs atom-text-editor:not(.autocomplete-active):not([mini])':
'ctrl-/': 'core:undo'

'.platform-win32 atom-workspace.atomic-emacs atom-text-editor':
'ctrl-d': 'core:delete'
'ctrl-e': 'editor:move-to-end-of-screen-line'
'ctrl-k ctrl-k': 'editor:cut-to-end-of-line'

'atom-workspace .find-and-replace atom-text-editor':
'atom-workspace.atomic-emacs .find-and-replace atom-text-editor':
'ctrl-s': 'find-and-replace:confirm'
'ctrl-r': 'find-and-replace:show-previous'

'.go-to-line atom-text-editor[mini] input':
'.atomic-emacs .go-to-line atom-text-editor[mini] input':
'ctrl-g': 'core:cancel'

'.tree-view-dialog atom-text-editor[mini]':
'.atomic-emacs .tree-view-dialog atom-text-editor[mini]':
'ctrl-g': 'core:cancel'

'atom-panel.left, atom-panel.right':
'.atomic-emacs atom-panel.left, atom-panel.right':
'ctrl-g': 'tool-panel:unfocus'

'.platform-linux atom-workspace, .platform-win32 atom-workspace':
'.platform-linux atom-workspace.atomic-emacs, .platform-win32 atom-workspace.atomic-emacs':
'alt-g g': 'go-to-line:toggle'
'alt-g alt-g': 'go-to-line:toggle'
'ctrl-g': 'core:cancel'

'.platform-win32 .go-to-line atom-text-editor[mini] input':
'.platform-win32 .atomic-emacs .go-to-line atom-text-editor[mini] input':
'ctrl-g': 'core:cancel'

'.platform-darwin':
'.platform-darwin .atomic-emacs':
'alt-g g': 'go-to-line:toggle'
'alt-g alt-g': 'go-to-line:toggle'
'ctrl-g': 'core:cancel'

'.platform-darwin .go-to-line atom-text-editor[mini] input':
'.platform-darwin .atomic-emacs .go-to-line atom-text-editor[mini] input':
'ctrl-g': 'core:cancel'

'atom-text-editor.autocomplete-active':
'.atomic-emacs atom-text-editor.autocomplete-active':
'ctrl-g': 'autocomplete-plus:cancel'

'atom-text-editor !important, atom-text-editor[mini] !important':
'.atomic-emacs atom-text-editor !important, .atomic-emacs atom-text-editor[mini] !important':
'ctrl-g': 'editor:consolidate-selections'

'atom-workspace .atomic-emacs.search atom-text-editor':
'atom-workspace.atomic-emacs .atomic-emacs.search atom-text-editor':
'enter': 'atomic-emacs:isearch-exit'
'ctrl-m': 'atomic-emacs:isearch-exit'
'escape': 'atomic-emacs:isearch-cancel'
Expand Down
9 changes: 8 additions & 1 deletion lib/atomic-emacs.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ module.exports =
State: State

config:
aastartWithEmacsBindings:
type: 'boolean',
default: true,
title: 'Turn on emacs bindings when Atom starts'
useAdvancedOpenFile:
type: 'boolean',
default: true,
Expand Down Expand Up @@ -78,11 +82,14 @@ module.exports =

State.initialize()
@search = new SearchManager(plugin: @)
document.getElementsByTagName('atom-workspace')[0]?.classList?.add('atomic-emacs')
if atom.config.get('atomic-emacs.aastartWithEmacsBindings')
document.getElementsByTagName('atom-workspace')[0]?.classList?.add('atomic-emacs')
@disposable = new CompositeDisposable
@disposable.add atom.commands.onWillDispatch (event) -> beforeCommand(event)
@disposable.add atom.commands.onDidDispatch (event) -> afterCommand(event)
@disposable.add atom.commands.add 'atom-text-editor',
# Activation
"atomic-emacs:toggle": (event) -> atom.workspace.element.classList.toggle('atomic-emacs')
# Navigation
"atomic-emacs:backward-char": (event) -> getEditor(event).backwardChar()
"atomic-emacs:forward-char": (event) -> getEditor(event).forwardChar()
Expand Down
62 changes: 1 addition & 61 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,68 +1,8 @@
{
"name": "atomic-emacs",
"main": "./lib/atomic-emacs",
"version": "0.15.0",
"version": "0.15.1",
"description": "An atomic implementation of emacs keybindings",
"activationCommands": {
"atom-text-editor": [
"atomic-emacs:backward-char",
"atomic-emacs:forward-char",
"atomic-emacs:backward-word",
"atomic-emacs:forward-word",
"atomic-emacs:backward-sexp",
"atomic-emacs:forward-sexp",
"atomic-emacs:backward-list",
"atomic-emacs:forward-list",
"atomic-emacs:previous-line",
"atomic-emacs:next-line",
"atomic-emacs:backward-paragraph",
"atomic-emacs:forward-paragraph",
"atomic-emacs:back-to-indentation",
"atomic-emacs:backward-kill-word",
"atomic-emacs:kill-word",
"atomic-emacs:kill-line",
"atomic-emacs:kill-region",
"atomic-emacs:copy-region-as-kill",
"atomic-emacs:append-next-kill",
"atomic-emacs:yank",
"atomic-emacs:yank-pop",
"atomic-emacs:yank-shift",
"atomic-emacs:cut",
"atomic-emacs:copy",
"atomic-emacs:delete-horizontal-space",
"atomic-emacs:delete-indentation",
"atomic-emacs:open-line",
"atomic-emacs:just-one-space",
"atomic-emacs:transpose-chars",
"atomic-emacs:transpose-words",
"atomic-emacs:transpose-lines",
"atomic-emacs:downcase-word-or-region",
"atomic-emacs:upcase-word-or-region",
"atomic-emacs:capitalize-word-or-region",
"atomic-emacs:dabbrev-expand",
"atomic-emacs:dabbrev-previous",
"atomic-emacs:isearch-forward",
"atomic-emacs:isearch-backward",
"atomic-emacs:isearch-exit",
"atomic-emacs:isearch-cancel",
"atomic-emacs:isearch-repeat-forward",
"atomic-emacs:isearch-repeat-backward",
"atomic-emacs:isearch-toggle-case-fold",
"atomic-emacs:isearch-toggle-regexp",
"atomic-emacs:isearch-yank-word-or-character",
"atomic-emacs:set-mark",
"atomic-emacs:mark-sexp",
"atomic-emacs:mark-whole-buffer",
"atomic-emacs:exchange-point-and-mark",
"atomic-emacs:recenter-top-bottom",
"atomic-emacs:scroll-down",
"atomic-emacs:scroll-up"
],
"atom-workspace": [
"atomic-emacs:find-file",
"atomic-emacs:close-other-panes"
]
},
"consumedServices": {
"file-icons.element-icons": {
"versions": {
Expand Down