123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- function getActivePath (target) {
- if (!target) {
- return atom.project.getPaths()[0]
- }
- const treeView = target.closest('.tree-view')
- if (treeView) {
- // called from treeview
- const selected = treeView.querySelector('.selected > .list-item > .name, .selected > .name')
- if (selected) {
- return selected.dataset.path
- }
- return
- }
- const tab = target.closest('.tab-bar > .tab')
- if (tab) {
- // called from tab
- const title = tab.querySelector('.title')
- if (title && title.dataset.path) {
- return title.dataset.path
- }
- return
- }
- const paneItem = atom.workspace.getActivePaneItem()
- if (paneItem && typeof paneItem.getPath === 'function') {
- // called from active pane
- return paneItem.getPath()
- }
- const textEditor = atom.workspace.getActiveTextEditor()
- if (textEditor && typeof textEditor.getPath === 'function') {
- // fallback to activeTextEditor if activePaneItem is not a file
- return textEditor.getPath()
- }
- const projects = atom.project.getPaths()
- if (projects.length === 1) {
- // use project is nothing is open
- return projects[0]
- }
- }
- module.exports = getActivePath
|