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.9.0.tar.gz (226.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nginx_language_server-0.9.0-py3-none-any.whl (232.3 kB view details)

Uploaded Python 3

File details

Details for the file nginx_language_server-0.9.0.tar.gz.

File metadata

  • Download URL: nginx_language_server-0.9.0.tar.gz
  • Upload date:
  • Size: 226.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.3 Linux/6.8.0-1021-azure

File hashes

Hashes for nginx_language_server-0.9.0.tar.gz
Algorithm Hash digest
SHA256 8066b8e0a450bcaa625b9bc692c938d8e547377c1b8eb2e8ef070f2c2f974106
MD5 7fb3b7a81066aed51fc05a4adaed1ca5
BLAKE2b-256 a8105f7366b5d3681dee1c9d464c4a780dbd88ed94784126a5e0f3796d738bcd

See more details on using hashes here.

File details

Details for the file nginx_language_server-0.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nginx_language_server-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 21611cbc0bae924a05ac85dc23387459c8e351710ed26ec126fc31d44260c8a5
MD5 27789a86cbee6f5a6d2a797d2fcd91a3
BLAKE2b-256 f4f9c1bf4c3d63eb8de8099b6ad3ddec45393667c60aa55f0999373f5a6f7810

See more details on using hashes here.

Supported by

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