carvel-dev / carvel-dev/ytt

Implement Language Server Protocol for ytt

Open
#217 3 comments 9 reactions 0 assignees View on GitHub
discussion
Dominant language
Go
Stars
1.9k
Forks
167
PR merge metrics
No merged PRs in 30d

Description

Write a [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) for `ytt` files (i.e. Starlark within YAML).

_(TODO: there is a lot that can be packed into an LSP; enumerate the features so that we can prioritize and tackle.)_

(Potentially) Useful Resources:
- https://github.com/juliosueiras/terraform-lsp
- https://github.com/mauve/vscode-terraform
- https://github.com/Microsoft/tolerant-php-parser
- https://github.com/dagger/cuelsp

Related Issues:
- #13
- #214

Related Conversations:
- > "Has anyone found a workaround for keeping syntaxically correct k8s spec files annotated with ytt directives and thus avoid invalid warnings from IDEs?" \
[#carvel (~2022-07-06)](https://kubernetes.slack.com/archives/CH8KCCKA5/p1657122559841129?thread_ts=1606190467.012500&cid=CH8KCCKA5)
- > "... it’s [atom] that complains about the two fields existing..." \
[#carvel (~2020-10-12)](https://kubernetes.slack.com/archives/CH8KCCKA5/p1602538628389300?thread_ts=1600661379.013800&cid=CH8KCCKA5)

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the Language Server Protocol specification and the linked LSP implementations for Terraform, PHP, and Cue. Enumerate the ytt-specific LSP features and prioritize them, considering the related issues and conversations about editor warnings. Done means an agreed feature scope and an implemented, usable LSP for ytt files.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.