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 🙏

© 2025 – Pkg Stats / Ryan Hefner

hyuga-vscode-client

v0.0.1

Published

Hy LSP(hyuga) Client for VSCode

Readme

Hyuga - Yet Another Hy Language Server

PyPI version

Forked from hy-language-server.

This software is still in the experimental stage!

Please be aware that specifications may change without prior notice.

Status

Verified-working Hy version: 1.0.0

|Hy version|Hyuga Support| |----------|-------------| |0.24 |0.2.1 | |0.25 |? | |0.26 |? | |0.27 |? | |0.28 |? | |1.0.0 |1.0.0 |

We need your help to check the support status for each hy version.

Please report the results in issues!

Feature

  • textDocument/did{Open,Change}
  • textDocument/completion
    • Display a list of all modules installed in your system, including classes/functions in the currently opening source. (Plain Python symbols are also included.)
  • textDocument/definition
    • Jump to the definition. (Currently, this refers to hy-source only.)
  • textDocument/hover

Screenshots

Completion

Hyuga sample movie: completion on neovim Hyuga sample movie: completion on vscode

Jump to definition

Hyuga sample movie: jump-to-definition on neovim Hyuga sample movie: jump-to-definition on vscode

Install

Regular Global Install

pip3 install hyuga

On Arch based systems, or other systems that use an externally managed Python environment where the above is not possible:

pipx install hyuga

Also, ensure you installed hy the same way via pipx, not pacman/yay, as the package has not yet been updated to 1.0.0, and is currently stuck at 0.29.0-1 for the moment. This likely won't apply in the future as it will inevitably be updated, but pipx is generally the safer route here as it pulls it straight from pypi, and doesn't depend on a maintainer to keep it up to date.

Setup

Neovim(nvim) Lua setup via lspconfig

Install vim-hy for filetype detection. This is optional, as you can register the filetype yourself, but you'll likely want to run this anyway if you're using Hy with Neovim, as it provides syntax highlighting among other things.

Then define an entry for Hyuga:

local lspconfig = require("lspconfig")
local lsp_configs = require("lspconfig.configs")

if not lsp_configs.hy then
  lsp_configs.hy = {
    default_config = {
      cmd = { 'hyuga' },
      filetypes = { 'hy' },
      root_dir = function(fname)
        return lspconfig.util.path.dirname(fname)
      end,
    },
    docs = {
      description = "Hyuga language server for the Hy programming language, a Python dialect of LISP"
    }
  }
end

And finally, don't forget to run setup! As a reference, here's how I have it set up. I prefer to defer setup (you may need to run :LspStart in case it doesn't auto-attach on the first hy file that gets opened, but only the first)

vim.api.nvim_create_autocmd("FileType", {
  once = true,
  pattern = 'hy',
  callback = function(_)
    local ls_entry = lsp_configs.hy
    ls_entry.setup {
      -- Any extended capabilities or custom on_attach functions go here as usual,
      -- e.g. for nvim-cmp other such plugins where you'd extend capabilities:
      -- capabilities = extended_capabilities,
      -- on_attach = custom_on_attach
      -- Can just be left blank, but included for reference. 
    }
  end
})

neovim(nvim) + vim-lsp + vim-lsp-settings

Install vim-lsp and vim-lsp-settings, open a *.hy file with filetype=hy, then run :LspInstallServer

" command line
CocInstall hyuga-vscode-client
" or add the following code to your vimrc
let g:coc_global_extensions = ['hyuga-vscode-client', 'other coc-plugins']

Visual Studio Code(VSCode)

  • Install hyuga to your python environment. (Refer to the Plain install section for details.)
  • In VSCode, open Extensions view, search for hyuga, and install Hyuga VSCode Client.

Development

Setup

  • Install poetry.
  • Clone this project: git clone https://github.com/sakuraiyuta/hyuga.git
  • In project directory, execute poetry install.

Test

poetry run pytest tests

License

MIT