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

solc-lsp

v1.1.1

Published

A library for Solidity LSP functions

Downloads

14

Readme

CircleCI

Solidity Language Server Functions

Here we have "Language Server" functions for Solidity via the npm package solc. The functions are the underlying workhorse function that would be used to implement the Microsoft Language Server Protocol Specification which is defined here.

To get started and make sure what we have is complete, there is a prototype using this on the client side to provide a VSCode extension for Solidity.

I hope to incorporate this in the remix, etheratom, VSCode solidity and other JavaScript projects that benefit from the information in Solidity's AST.

Prerequisites...

You need to have installed:

  • nodejs. Use node version 10.x. Node version 12 cannot be used. See below for details
  • npm

Node version 12 and VSCode Problems

One of the npm dependencies is solc. This npm package has a dependency on the scrypt cryptographic package. Nodejs version 12 doesn't work with this. See https://github.com/barrysteyn/node-scrypt/issues/193. I developed and tested this on node version 10.16.0.

When used as a client library with the VSCode extension, I also needed to replace script.js with script-js which is currently in the web3-eth-accounts package. Otherwise, VSCode will crash silently. When used inside VSCode with the language server protocol, this won't happen.

Installing from NPM

$ npm  install solc-lsp

Installing from the github repository

Clone the repository.

$ git clone https://github.com/rocky/solc-lsp.git
Cloning into 'solc-lsp
remote: Enumerating objects: 169, done.
   ...
$ cd solc-lsp
$ npm install

Testing

$ npm test

This code runs solc. Specific versions of the Solidity compiler are downloaded when it is detected they are needed.

Thanks

A big thanks to my employer, ConsenSys, for giving me the opportunity to work on this and providing the funding for this project.