Skip to main content

Language server for MAL

Project description

MAL Language Server

mal-language-server is a language server for MAL.

General

The project uses uv as the main project manager and ruff for linting/formatting. ruff can be installed via uv as native via uv tool install ruff or use it as the dev-dependency its specified as via uv run ruff <command>.

Before running the project or editing files, uv must download the required packages. For that, use uv sync.

Running

To run the server, use the command uv run malls -- <options>.

There are two main ways of interacting with the server, via files or TCP. This can be configured via the start-up options. Obviously, they are mutually exclusive, meaning only one can be used per server instance.

  1. Files: for this option, run uv run malls --stdio, which defaults to standard input and output. To configure what files are used to read from/write to, run uv run malls --stdio -o OUT_FILE_PATH -i IN_FILE_PATH.

  2. TCP: for this option, run uv run malls --tcp, which starts the server on localhost with port 8080. To use another host or port, add those options with uv run malls --tcp --host HOST -p PORT.

Other start-up arguments, namely related to logging, can be found using uv run malls -h

Installation

NeoVim

  1. Install the server via pip, for example locally:
    pip install /folder/path/of/pyproject
    

    [!NOTE] Use -e to install it in editable/development mode, which updates the installation live.

  2. Configure your NeoVim LSP client, for example : init.lua
    vim.lsp.config['malls'] = {
        cmd = { "malls", "--stdio" },
        filetypes = { 'mal' },
    }
    vim.lsp.enable('malls')
    

    [!NOTE] Tested for NeoVim v0.11.1

CI/CD

Packages are published via UV on ubuntu to PyPI on tags pushed to the repository.

Tests are ran with pytest and pytest-xdist on ubuntu and macos. Additionally formatting and linting checks are ran with ruff.

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

mal_language_server-0.1.0.tar.gz (84.2 kB view details)

Uploaded Source

Built Distribution

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

mal_language_server-0.1.0-py3-none-any.whl (44.8 kB view details)

Uploaded Python 3

File details

Details for the file mal_language_server-0.1.0.tar.gz.

File metadata

  • Download URL: mal_language_server-0.1.0.tar.gz
  • Upload date:
  • Size: 84.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mal_language_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a02fab0392718cc197988a87be3a60f1062fd15a49511c858e0373ba0ba3a8db
MD5 8f025dee7f37b1035e5437e4c30dabeb
BLAKE2b-256 2b3fdb36a58ed6da1b649d122b0ef3d30a58ea9481bc3f0dfc600f1771363b7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for mal_language_server-0.1.0.tar.gz:

Publisher: publish.yml on mal-lang/mal-ls

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mal_language_server-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mal_language_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b5f46a699841f1910bab9f7743ba4dfd474259cd58ee522de11bd1d519735b4
MD5 a46beeef95f4ec73f139067129a88806
BLAKE2b-256 a28248b5bbd37130ece06a7cd8102ffc725a90a754d3903d024417e1f662dd4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for mal_language_server-0.1.0-py3-none-any.whl:

Publisher: publish.yml on mal-lang/mal-ls

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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