mutterings in the dark
Posted on September 30, 2024
Rust health check
To pass the helix rust health check hx --health rust
, there are 4 items which need to be addressed:
- (LSP) Language Server Protocol
- (DAP) Debug Adapter Protocol
- formatter
- queries
Example of how to set these up are in the Dockerfile below.
Currently (2024 Sep) there's an issue with the default apk helix package, so build from source
languages.toml
[[language]]
name = "rust"
formatter = { command = "rustfmt" }
Note: if making changes to language.debugger, need to include everything
Dockerfile
# temp dir for building
ARG HELIX_BUILD_DIR=/helix
# root dir for binary e.g. `/usr/bin/hx`
ARG HELIX_BIN_DIR=/usr
ARG HELIX_DEFAULT_RUNTIME=/usr/lib/helix/runtime
#==rust==
FROM docker.io/alpine AS rust
RUN apk update && \
apk add --no-cache curl
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
# update PATH for cargo
ENV PATH="/root/.cargo/bin:$PATH"
#==helix==
FROM rust AS helix-build
ARG HELIX_BUILD_DIR
ARG HELIX_BIN_DIR
ARG HELIX_DEFAULT_RUNTIME
ENV HELIX_DEFAULT_RUNTIME=$HELIX_DEFAULT_RUNTIME
# https://www.reddit.com/r/HelixEditor/comments/11sfobd/not_getting_syntax_highlighting_even_though/
ENV RUSTFLAGS="-C target-feature=-crt-static"
RUN apk update && \
apk add git g++
RUN git clone https://github.com/helix-editor/helix $HELIX_BUILD_DIR
WORKDIR $HELIX_BUILD_DIR
RUN cargo install --path helix-term --locked --root $HELIX_BIN_DIR
FROM rust AS helix
ARG HELIX_BUILD_DIR
ARG HELIX_BIN_DIR
ARG HELIX_DEFAULT_RUNTIME
ENV HELIX_DEFAULT_RUNTIME=$HELIX_DEFAULT_RUNTIME
ARG HOME=/root
ARG HELIX_CONFIG=$HOME/.config/helix/
# 1. (LSP) Language Server Protocol
RUN rustup component add rust-analyzer
# 2. (DAP) Debug Adapter Protocol
# workaround for lldb-dap https://github.com/helix-editor/helix/issues/9964
RUN apk add lldb && \
ln -s /usr/bin/lldb-vscode /usr/bin/lldb-dap
# 3. formatter
RUN mkdir -p $HELIX_CONFIG
COPY languages.toml $HELIX_CONFIG
# 4. queries
RUN mkdir -p $HELIX_DEFAULT_RUNTIME
COPY --from=helix-build $HELIX_BUILD_DIR/runtime $HELIX_DEFAULT_RUNTIME
# binary
COPY --from=helix-build $HELIX_BIN_DIR/bin/hx $HELIX_BIN_DIR/bin/
CMD ["hx"]
π πͺ π
π©
mutterings in the dark
Posted on September 30, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
rust rustup γ "error: linker `cc` not found" γ§ε€±ζ - Alpine Linux 3.17 (Rust 1.66)
January 9, 2023