- List of functions, classes, objects etc. on a sidebar
- Full indexing of JS project
- Global searching: just prefix your search with 2 dots: ..foo)
- Semantic code search
- JavaScript/ES6 support
To allow full project indexing you have to create lupaProject.json in root directory of your project. Example file:
{
"filePattern": "src/**/*.js"
}
This package shows structure of each JavaScript file, with clickable list of functions, imports etc. It allows you to navigate also between different files in project, shows what modules in project import particular file.
You can also perform deep searching, e.g. you can find all functions that have their first parameter named err.
examples of semantic search (DSL can change in future versions).
type:objectLiteral
(space has meaning so this isn't gonna work:
type : objectLiteral #doesn't gonna work
Example below finds functions which have foo in name:
type:function foo
type:class
type:todo
params.length:2
params[0].name:err
jsx:true
loc.start.column:7
loc.start.line:3
Example below finds external imports (i.e. these from node_modules):
source:node_modules
- ES5 (just plain old JavaScript)
- ES6 (e.g. it detects imports/exports, ES6 classes and arrow functions)
- JSX (so it can be helpful during development with React)
- CommonJS (it detects
require(...)s ) - AngularJS (eg. it detects AngularJS directives)
- Python (basic support)
- CoffeeScript (basic support)
- add JSON support
- basic support of TypeScript
- go to class methods
- detect variables
- fix bug which ocurred during CSS editing
- show names of parent functions for callbacks
- toggle visibility for entity types
- detect function names in namespaces (eg. foo.bar.functionName = function () {})
- highlighting import/require declaration
- clicking variable name from import now jumps to declaration; going to imported file is still possible by clicking on file name
togglecommand now shows/hides sidepanel. Previoustogglecommand was renamed tofocus
- (for contributors) search box in styleguide
- line count for all files
- basic Python support
- restore selections after preview
- alt+click now selects entity
- rewriting big parts of package
- panel is now resizable
- More integration with Atom color theme
- Better keyboard navigation
- ProjectExplorer is out (for now. It probably returns improved)
- Better preview (fixing scrolling issues)
- Global search (by two dots on the beginning e.g. ..something
- Other improvements
- Keyboard support
- Complex searches (like type:function jsx:true render)
- show type only before first entity of that type
- autohiding refresh button when autorefresh is enabled
- better AngularJS support (jumping to definition/location information)
- deep search (e.g. params[0].name )
- support for object literals
- support for CSS class names in JSX
- settings: autoRefresh(on/off)
- filter by type (e.g. type:function)
- breadcrumbs (you must enable it in settings)
- now it's possible to filter symbols by name
- better class preview in sidepanel
- project explorer now uses components from sidepanel
- changeColors button for users with light backgrounds
- better support for functions
- redesign, rewrite, refactor
- support for TODOs
- fix bug with line highlighting in ProjectExplorer
- fix other bugs
- Smalltalk-like project explorer
- support for CoffeeScript
- highlight labels
- basic support for css/scss
- fix bug when there is no node_modules in directory tree
- fix bug when there is no lupaProject.json in directory tree
- line count in color (green, yellow, orange, red)
- fix bug when user clicks on pane item which is not a text editor (e.g. settings)
- use react
- better list of files in dashboard (clickable and with loc colors)
- list of files in separate pane item (dashboard)
- highlight function range in editor
- support for @providesModule
- jump to function
- few other improvements
- configurable indexing (config must be in lupaProject.json file)
- "autolabel" feature (define regexps in lupaProject.json file)
- feature: files that import current file
- bug: doesn't show imports like that import {aa} from 'aabc.js' (needed something like that {from:'abc.js', name:'ss'} instead of strings)
- rewrite plugin to use new Lupa version
- fix bug that prevented pane to scroll (remove height: 100% from pane)
- regression: analysis is not done in separate process anymore
- fix bug when switching to empty(non saved) file
- experimental "go to definition" feature for angular modules
- analyze files in separate process - to avoid freezing Atom.
LICENSES:
-
Atom-Lupa: MIT
-
The AngularJS logo design is licensed under a "Creative Commons Attribution-ShareAlike 3.0 Unported License"



