Skip to main content

A language server for nginx.conf

Project description

Nginx Language Server

image-version image-license image-python-versions

A Language Server for nginx.conf.

Still under construction, expect big / potentially breaking changes for a while.

Capabilities

nginx-language-server currently partially supports the following Language Server capabilities with more to be added in the future.

Language Features

Installation

From your command line (bash / zsh), run:

pip install -U nginx-language-server

-U ensures that you're pulling the latest version from pypi.

Alternatively, consider using pipx to keep nginx-language-server isolated from your other Python dependencies.

Editor Setup

The following instructions show how to use nginx-language-server with your development tooling. The instructions assume you have already installed nginx-language-server.

Vim / Neovim

With coc.nvim, put the following in coc-settings.json:

{
  "languageserver": {
    "nginx-language-server": {
      "command": "nginx-language-server",
      "filetypes": ["nginx"],
      "rootPatterns": ["nginx.conf", ".git"]
    }
  }
}

In your vimrc, I recommend putting in the following lines to ensure variables complete / hover correctly:

augroup custom_nginx
  autocmd!
  autocmd FileType nginx setlocal iskeyword+=$
  autocmd FileType nginx let b:coc_additional_keywords = ['$']
augroup end

Alternatively, you can use coc-nginx.

let g:coc_global_extensions = ['@yaegassy/coc-nginx']

Note: this list is non-exhaustive. If you know of a great choice not included in this list, please submit a PR!

Command line

nginx-language-server can be run directly from the command line.

$ nginx-language-server --help
usage: nginx-language-server [-h] [--version] [--tcp] [--host HOST]
                             [--port PORT] [--log-file LOG_FILE] [-v]

Nginx language server: an LSP server for nginx.conf.

optional arguments:
  -h, --help           show this help message and exit
  --version            display version information and exit
  --tcp                use TCP server instead of stdio
  --host HOST          host for TCP server (default 127.0.0.1)
  --port PORT          port for TCP server (default 2088)
  --log-file LOG_FILE  redirect logs to the given file instead of writing to
                       stderr
  -v, --verbose        increase verbosity of log output

Examples:

    Run from stdio: nginx-language-server

Inspiration

The useful language data for nginx is ported from vscode-nginx-conf-hint. I would have used this library directly, but alas! It's written only for VSCode and I use Neovim.

Written by

Samuel Roeca samuel.roeca@gmail.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nginx_language_server-0.8.0.tar.gz (228.0 kB view hashes)

Uploaded Source

Built Distribution

nginx_language_server-0.8.0-py3-none-any.whl (233.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page