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

kos-language-server

v1.1.5

Published

A Language server for Kerbal Operating System. A mod for Kerbal Space Program.

Downloads

35

Readme

KOS Language Server

kos-language-server is a language server for the Kerboscript language, part of Kerbal Operating System mod.

Installation

This package should like be installed globally using

  npm install -g kos-language-server

the server can then be started by

  kls

Arguments

  • -v --version output the version number
  • --node-ipc Connect with node inter process communication
  • --stdio Connect with standard io
  • --clientProcessId Id of the attached client process
  • --harmony_async_iteration Must be enabled if using node.js pre 10.0
  • -h --help output usage information

Features

Currently the kos-language-server 1.1.5 implements the follow features

  • Code completion
    • Built in symbols and keywords
    • local in scope symbols
    • suffixes where the type can be resolved
    • can be manually triggered
  • Document Symbols for quick navigation to properties in the document.
  • Workspace Symbols
  • Diagnostics (Validation) are pushed for all documents
    • syntax errors
    • semantic errors such as:
      • invalid parameter order
      • lazy global position
      • return and break outside of function or loop body
    • semantic warnings such as:
      • potentially undefined symbols
      • symbols that are shadowed by other symbols
      • potentially unused symbols
      • unreachable code
  • Go to definition for symbols and run statements. Currently for clashing globals the first found will be shown
  • Refactoring
    • Rename symbol
  • Type Checking
    • type checker for identifying wrong types
    • can in certain scenarios correctly identify the types of symbols and expressions
  • On hover symbol information with type info
  • Signature help for functions that can be correctly resolved
  • Caching of all documents in the workspace
  • Directives
    • Foldable regions using // #region and // #endregion
    • Include symbols using // #include <file-path>
  • Linting configuration with ksconfig.json

Configuration

The workspace can be configured with a file called ksconfig.json. The following is an example

{
  "archive": "..",
  "bodies": ["earth", "moon", "sun"],
  "linting": {
    "control-flow-break": "off"
  }
}

This will set the archive folder to correspond to the folder above, the valid bodes to be earth, moon and sun and to turn off linting related to invalid break statements. More info can be found here.