GithubHelp home page GithubHelp logo

imadnyc / snippets-ls Goto Github PK

View Code? Open in Web Editor NEW

This project forked from quantonganh/snippets-ls

0.0 0.0 0.0 28 KB

A simple language server to just insert snippets into Helix (and other text editor, IDE)

License: MIT License

Go 54.08% Nix 45.92%

snippets-ls's Introduction

snippets-ls

A simple language server to just insert snippets into Helix (and other text editor, IDE)

https://quantonganh.com/2023/07/31/create-snippets-in-helix

Installation

You can download the latest binary from the release page.

Install via homebrew

brew install quantonganh/tap/snippets-ls

Install via go

$ go install github.com/quantonganh/snippets-ls@latest

Don't forget to append ~/go/bin to your $PATH.

Install via nix flake with home-manager

Include the following in the inputs of flake.nix for home-manager:

inputs = {
  # load compatible nixpkgs and home-mananger repos; they need not be 23.05
  nixpkgs = { url = "github:nixos/nixpkgs/nixos-23.05"; };
  home-manager = {
    url = "github:nix-community/home-manager/release-23.05";
    inputs.nixpkgs.follows = "nixpkgs";
  };
  # ...
  snippets-ls = {
    url = "github:quantonganh/snippets-ls";
    inputs.nixpkgs.follows = "nixpkgs";
  };
};

There are in turn many suitable ways to configure the outputs of flake.nix. One option is to use an overlay with something like

outputs = inputs:
  with inputs;
  let
    system = "x86_64-linux"; # or other system as applicable (such as "x86_64-darwin")
    pkgs = import nixpkgs {
      inherit system;
      overlays = [ pkgs_overlay ];
    };
    # ...
    pkgs_overlay = final: prev: {
      # ...
      external.snippets-ls = snippets-ls.packages.${prev.system}.snippets-ls;
    };
  in {
    homeConfigurations.YOUR-USER-NAME-HERE = home-manager.lib.homeManagerConfiguration {
      inherit pkgs;
      modules = [ ./home.nix ];
    };
  };
};

The use of this overlay allows you to call this packages with pkgs.external.snippets-ls, such the list of packages in home.nix can look something like

home.packages = with pkgs; [
  # ...
  external.snippets-ls
];

Usage

Create your own snippets follow VSCode syntax. Alternatively, you can make use of pre-existing sample for various programming languages.

Update your configuration file located at ~/.config/helix/languages.toml:

[[language]]
name = "go"
formatter = { command = "goimports"}
language-servers = ["gopls", "snippets-ls"]

[language-server.snippets-ls]
command = "snippets-ls"
args = ["-config", "/Users/quantong/.config/helix/go-snippets.json"]

Subsequently, as you start working on your file, input a snippet prefix to observe the suggestion. If it does not work, take a look at ~/.cache/helix/helix.log for additional insights.

snippets-ls's People

Contributors

quantonganh avatar perlinm avatar imadnyc avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.