Skip to content

lejsue/symbols-navigator

Repository files navigation

Symbols Navigator package

Symbols navigator for Atom.io, using new universal-ctgas for parsing and adding public/protected/private visibility icons.

This package is fork from symbols-tree-view and symbols-tree-nav, but rewritten in Javascript and removed some functions.

=> tag-generator.js comes from tag-generator.coffee in symbols-view. and symbols-icon comes from symbols-tree-view.

Press ctrl + alt + o to open/close the Symbols Navigator.

Install with apm install symbols-navigator or use Install Packages from Atom Settings.

Symbols Navigator in Docks

In Atom 1.17, a new UI component called "docks" are introduced. Symbols Navigator is using this new feature, therefore it can be dragged to left or right side, as same as Tree View package.

Settings

  • Collapsed By Default (default=false) If checked then all collapsable elements will be displayed collapsed by default. This implementation comes from symbols-tree-nav.
  • Scroll Animation (default=true) If checked then when you click the item in symbols-navigator, it will scroll to destination gradually. This implementation comes from symbols-tree-view.
  • Show Access Icons (defalut=true) If checked then access icons will be displayed before each element. (contributed by tweakimp)
  • Show Syntax Icon (defalut=true) If checked then syntax icons will be displayed before each element. This implementation comes from symbols-tree-nav.
  • Colors For Synatx (default=true) If checked then synatx icons will be colorized.
  • Can be closed by clicking x (default=false) If checked then symbols-navigator can be closed by clicking the x on the tab.
  • Auto Reveal On Start (default=false) If checked then symbols-navigator will auto reveal on start-up.
  • Position (defalut=Left) Defalut position the symbols-navigator appear. Possible options: Right, Left, Hidden. If you choose Hidden, the symbols-navigator tree tab will not be shown.
  • Sort By (defalut=Symbol Name) The rule symbols will be sorted by. Possible options: Symbol Name, Source Row.
  • Auto Hide Types You can specify a list of types that will be hidden by default. This implementation comes from symbols-tree-view.
  • Alternative Ctags Binary You can specify a path to a binary to use for ctags instead of the original one in symbols-navigator. This implementation comes from symbols-tree-nav.
  • Click Type (default=Double Click) You can specify which clicking event to trigger moving cursor to the symbol.
  • Collapse Click Type (default=Go to symbol) 'Choose if the cursor should move to the symbol if a collapsible item is clicked, or the item collapsed. Clicking on the arrow next to the item will always collapse the item. (contributed by XaverKlemenschits)
  • Scroll Type (default=Quickest) Specifies how the editor will scroll to show the symbol at a specific location in the editor. i.e.: Top means the symbol will be shown on the top of the editor window. Possible options: Quickest, Top, Center, Bottom. (contributed by XaverKlemenschits)
  • Show Current Symbol On Status Bar (default=false) If checked then symbols-navigator will show current symbol on status bar.

Supported commands

  • symbols-navigator:toggle
  • symbols-navigator:toggle-focus

Universal-ctags Version

Please find it in version.txt.

TODO

I'm a PHP developer, and have made the switch from Netbeans to Atom. I'm trying to make the behavior of this Symbols Navigator as close as possible. I'll list some good features for improvement.

Any suggestions, forks and commits are highly appreciated!

  • Fix the problem of tag geneator. Example code in JavaScript:
class A {
  AB() {
    function ABC() {}
  }
}
clas B {
  AB() {
    function ABC() {}
  }
}

This problem seems to be due to the default setting in Universal-Ctags(https://github.com/universal-ctags/ctags/blob/master/parsers/jscript.c#L346), not easy to fix in symbols-navigator.

License

This software is licensed under the MIT License.