Skip to content

anakin4747/wksls

Repository files navigation

wksls

AGENTIC TDD Project — This entire application is built using Test-Driven Development to guide AI agents through the implementation. Tests written with lsts define the expected behaviour first then agents implement the solution.

A Language Server Protocol (LSP) server for OpenEmbedded/Yocto Wic Kickstart (.wks) files.

This is a project that emphasizes simplicity. The application is a single shell script called wksls. The test suite is a single file called tests/wksls_tests.bats.

Features

Hover

Displays documentation for the keyword under the cursor.

Neovim Hover

neovim-hover.mp4

VS Code Hover

vscode-hover.mp4

Completion

Provides keyword and argument suggestions.

Neovim Completion

neovim-completion.mp4

VS Code Completion

vscode-completion.mp4

Diagnostics

Reports syntax and semantic errors inline.

Neovim Diagnostics

neovim-diagnostics.mp4

VS Code Diagnostics

vscode-diagnostics.mp4

Go-to Definition

Jumps to the definition of the wks plugins under the cursor.

Neovim Go-to Definition

neovim-goto-definition.mp4

VS Code Go-to Definition

vscode-goto-definition.mp4

Dependencies

  • bash 4.0+
  • jq

Installation

Manual

Requires bash and jq to be on your PATH.

git clone https://github.com/anakin4747/wksls
cd wksls
make install
# or with a custom prefix:
make install PREFIX=~/.local

To uninstall:

make uninstall
# or:
make uninstall PREFIX=~/.local

Nix

Install directly from the flake into your profile:

nix profile add github:anakin4747/wksls

To uninstall:

nix profile remove wksls

Editor configuration

Neovim

Requires a recent Neovim build.

Add the following to your init.lua:

vim.lsp.config('wksls', {
    cmd = { 'wksls' },
    filetypes = { 'wks' },
    root_markers = { '.git' },
})

vim.lsp.enable('wksls')

To get wks filetype detection and syntax highlight make sure you are on a version of Neovim/Vim after my contribution which added support for the wks filetype.

Note that wks filetype detection is required to automatically start the language server in Neovim.

VS Code / VSCodium

The extension lives in the vscode-wksls/ directory and must be installed separately from the language server.

make install-vscode-ext     # VS Code
make install-vscodium-ext   # VSCodium

Or install the wksls-*.vsix file from the GitHub releases.

The extension expects wksls to be on your PATH. Install the language server first using one of the methods above.

License

GPL-2.0-only. See LICENSE.

About

WKS language server for Yocto development

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages