content: FROM debian:latest AS neovim-image
  ARG NVIM_VERSION=stable
  ARG NVIM_ARCH=-linux-x86_64
  ADD --chmod=755 https://github.com/neovim/neovim/releases/download/${NVIM_VERSION}/nvim${NVIM_ARCH}.appimage /nvim-linux-x86_64.appimage
  RUN /nvim-linux-x86_64.appimage --appimage-extract
  
  FROM debian:latest AS vim-image
  ARG VIM_VERSION=v9.1.1287
  ADD --chmod=755 https://github.com/vim/vim-appimage/releases/download/${VIM_VERSION}/Vim-${VIM_VERSION}.glibc2.29-x86_64.AppImage /vim-linux-x86_64.appimage
  RUN /vim-linux-x86_64.appimage --appimage-extract
  
  FROM rust:latest AS tree-sitter
  WORKDIR /work
  RUN cargo install tree-sitter-cli --root /
  ADD https://github.com/tree-sitter/tree-sitter-ruby.git /work/tree-sitter-ruby
  RUN cd tree-sitter-ruby \
      && tree-sitter build -o /work/ruby.so
  ADD https://github.com/tree-sitter/tree-sitter-python.git /work/tree-sitter-python
  RUN cd tree-sitter-python \
      && tree-sitter build -o /work/python.so
  
  FROM python:latest AS base
  RUN --mount=target=/var/lib/apt/lists,type=cache,sharing=locked \
      --mount=target=/var/cache/apt,type=cache,sharing=locked \
      apt-get update -qq && \
      apt-get install --no-install-recommends -y \
      git \
      ca-certificates \
      make
  
  FROM base AS test-prep
  WORKDIR /work
  COPY test/new/requirements.txt test/new/requirements.txt
  COPY test/new/Makefile test/new/Makefile
  RUN cd test/new && make env
  RUN mkdir -p test/vader/vader.vim && git clone --depth=1 https://github.com/junegunn/vader.vim.git test/vader/vader.vim
  
  FROM python:latest AS nvim
  
  WORKDIR /work
  ENV HOME=/work
  ENV GIT_PAGER=cat
  ENV TESTS_ENABLE_TREESITTER=1
  
  # nvim
  COPY --from=neovim-image /squashfs-root /nvim-root
  RUN ln -s /nvim-root/AppRun /bin/nvim
  
  # vim
  COPY --from=vim-image /squashfs-root /vim-root
  RUN ln -s /vim-root/AppRun /bin/vim
  
  COPY . .
  COPY --from=test-prep /work/test test
  
  # Treesitter
  RUN mkdir -p /work/.local/share/nvim/site/parser/
  COPY --from=tree-sitter /work/ruby.so /work/.local/share/nvim/site/parser/ruby.so
  COPY --from=tree-sitter /work/python.so /work/.local/share/nvim/site/parser/python.so
  
  ENTRYPOINT ["bash"]
  