Используйте древовидное представление в сценарии инициализации редактора Atom.

Я пытаюсь написать сценарий инициализации для редактора Atom, чтобы добавить пользовательскую команду, чтобы иметь возможность отображать текущий открытый файл редактора в древовидном представлении с помощью одной комбинации клавиш вместо двух.

Вот пример кода (который делает что-то другое), чтобы было понятно, как он вообще должен выглядеть.

atom.commands.add 'atom-editor', 'custom:cut-line', ->
  editor = atom.workspace.getActiveEditor()
  editor.selectLine()
  editor.cutSelectedText()

Две нужные мне команды должны быть отправлены не на editor, а на tree-view. Вот две команды:

  tree-view:toggle-focus
  tree-view:reveal-active-file

Я предполагаю, что мне нужно сделать что-то подобное, как указано выше, например getActiveTreeView или что-то в этом роде. Я пытался найти это в Google, но это не кажется очевидным. Кто-нибудь знает, как это сделать?

Это может выглядеть примерно так:

atom.commands.add 'atom-editor', 'custom:show-active-file', ->
  tree-view.toggle-focus()
  tree-view.reveal-active-file()

person Linus    schedule 01.12.2014    source источник


Ответы (2)


Вы можете использовать метод atom.commands.dispatch() для отправки команды, когда получение объекта для отправки команд затруднено. В вашем случае вы можете использовать:

atom.commands.add 'atom-editor', 'custom:show-active-file', ->
  atom.commands.dispatch(atom.workspaceView.element, 'tree-view:toggle-focus')
  atom.commands.dispatch(atom.workspaceView.element, 'tree-view:reveal-active-file')
person Lee    schedule 01.12.2014
comment
Спасибо за Ваш ответ. Когда я копирую код в свой init.coffe и перезапускаю Atom, custom:show-active-file не отображается в моих настройках привязки клавиш. - person Linus; 01.12.2014
comment
Я не уверен, что ты получил уведомление @Lee - person Linus; 02.12.2014
comment
Когда я просто привязываю ключ к команде custom:show-active-file, в окне отладчика распознавателя ключей (cmd-.) отображается зеленая линия. Но на самом деле ничего не происходит. - person Linus; 02.12.2014

К сожалению, ответ Ли уже неверен. В рамках изменений в API изменено название atom.workspaceView на atom.workspace.

Итак, если кто-то сюда доберется (конечно, вопросы и ответы «немного» устарели), вот текущий рабочий скрипт.

atom.commands.add 'atom-editor', 'custom:show-active-file', ->
atom.commands.dispatch(atom.workspace.element, 'tree-view:toggle-focus')
atom.commands.dispatch(atom.workspace.element, 'tree-view:reveal-active-file')

@Source
https://discuss.atom.io/t/workspaceview-events/14595/4

person Sino Boeckmann    schedule 04.07.2019