npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

atom-lupa

v0.7.15

Published

Navigation bar and breadcrumbs

Downloads

57

Readme

Lupa 🔍

##click here for Live Demo

  • 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

atom screenshot

Note:

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.

It allows you to filter entries by name or type, e.g.:

atom screenshot

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

It has support for:
  • 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)
Breadcrumbs:

atom screenshot Sidepanel: atom screenshot

CHANGELOG

2016-06-30

  • basic support of TypeScript

2016-06-25

  • go to class methods
  • detect variables
  • fix bug which ocurred during CSS editing

2016-06-23

  • show names of parent functions for callbacks
  • toggle visibility for entity types

2016-06-22

  • detect function names in namespaces (eg. foo.bar.functionName = function () {})

2016-06-04

  • 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

2016-06-02

  • toggle command now shows/hides sidepanel. Previous toggle command was renamed to focus

2016-05-29

  • (for contributors) search box in styleguide

2016-05-26

  • line count for all files
  • basic Python support

2016-05-22

  • restore selections after preview
  • alt+click now selects entity

2016-05-17

  • 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

2016-05-06

  • Keyboard support
  • Complex searches (like type:function jsx:true render)

2016-05-04

  • show type only before first entity of that type
  • autohiding refresh button when autorefresh is enabled

2016-05-03

  • better AngularJS support (jumping to definition/location information)

2016-05-02

  • deep search (e.g. params[0].name )

2016-05-01

  • support for object literals
  • support for CSS class names in JSX

2016-04-30

  • settings: autoRefresh(on/off)
  • filter by type (e.g. type:function)
  • breadcrumbs (you must enable it in settings)

2016-04-29

  • 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

2016-04-27

  • better support for functions

2016-04-23

  • redesign, rewrite, refactor
  • support for TODOs
  • fix bug with line highlighting in ProjectExplorer
  • fix other bugs

2016-04-20

  • Smalltalk-like project explorer

2016-04-16

  • support for CoffeeScript

2016-04-15

  • highlight labels

2016-04-12

  • basic support for css/scss

2016-04-10

  • 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)

2016-04-09

  • list of files in separate pane item (dashboard)
  • highlight function range in editor

2016-04-08

  • support for @providesModule
  • jump to function
  • few other improvements

2016-04-03

  • 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

2016-03-17

  • fix bug when switching to empty(non saved) file

2016-03-16

  • experimental "go to definition" feature for angular modules

2016-03-16

  • analyze files in separate process - to avoid freezing Atom.

LICENSES: