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

flow-vim-quickfix

v0.3.0

Published

Node based tool to format `flow --json` output to a quickfix friendly format

Downloads

5

Readme

flow-vim-quickfix

Commandline tool to either consume flow --json generated output via stdin or by spawning a specific flow executable on it's own and generate VIM quickfix friendly lines, ready for errorformat parsing.

This tool was built for replacing the default flow maker in Neomake and thrives to enhance the UX for getting useful flow messages in VIM.

Installation

$ npm install -g flow-vim-quickfix

Configuring NeoMake

For now, you will need to add and enable a custom maker to your .vimrc or .config/nvim/init.vim file, like this:

function! StrTrim(txt)
  return substitute(a:txt, '^\n*\s*\(.\{-}\)\n*\s*$', '\1', '')
endfunction

let g:neomake_javascript_enabled_makers = []

let g:flow_path = StrTrim(system('PATH=$(npm bin):$PATH && which flow'))

if findfile('.flowconfig', '.;') !=# ''
  let g:flow_path = StrTrim(system('PATH=$(npm bin):$PATH && which flow'))
  if g:flow_path != 'flow not found'
    let g:neomake_javascript_flow_maker = {
          \ 'exe': 'sh',
          \ 'args': ['-c', g:flow_path.' --json | flow-vim-quickfix'],
          \ 'errorformat': '%E%f:%l:%c\,%n: %m',
          \ 'cwd': '%:p:h' 
          \ }
    let g:neomake_javascript_enabled_makers = g:neomake_javascript_enabled_makers + [ 'flow']
  endif
endif

" This is kinda useful to prevent Neomake from unnecessary runs
if !empty(g:neomake_javascript_enabled_makers)
  autocmd! BufWritePost * Neomake
endif

Now, after re-sourcing your vim config, the maker should run the flow binary and pipe it through flow-vim-quickfix. Why do we use sh here? Because the shell is much faster spawning the flow process than node, resulting in much faster feedback on each BufWrite in VIM.

Usage

If you want to use the cli command for other purposes than VIM:

# Assuming you have been installing flow via `npm install -g flow-bin`...
flow --json | flow-vim-quickfix

# Or if you don't care about performance and want `node` to spawn flow for you
flow-vim-quickfix /path/to/your/flow

# You can also just use flow from $PATH
flow-vim-quickfix flow