schemaVersion: 2.2.2
metadata:
  name: neovim
  displayName: Neovim
  description: Neovim terminal editor for Eclipse Che via ttyd
  icon: https://upload.wikimedia.org/wikipedia/commons/3/3a/Neovim-mark.svg
  tags:
    - Tech-Preview
  attributes:
    publisher: neoche
    version: insiders
    title: Neovim terminal editor for Eclipse Che
    repository: https://github.com/pfeifferj/neoche
    firstPublicationDate: '2026-03-03'
    arch:
      - x86_64
commands:
  - id: init-container-command
    apply:
      component: neovim-injector
  - id: init-neovim-command
    exec:
      component: neovim-runtime
      commandLine: >-
        nohup /neovim/entrypoint-volume.sh > /neovim/entrypoint-logs.txt 2>&1 &
events:
  preStart:
    - init-container-command
  postStart:
    - init-neovim-command
components:
  - name: neovim-injector
    container:
      image: 'quay.io/pfeifferj/neoche:insiders'
      command:
        - /entrypoint-init-container.sh
      volumeMounts:
        - name: neovim
          path: /neovim
      memoryLimit: 256Mi
      memoryRequest: 32Mi
      cpuLimit: 500m
      cpuRequest: 30m
  - name: neovim-runtime
    container:
      image: 'quay.io/devfile/universal-developer-image:latest'
      memoryLimit: 512Mi
      memoryRequest: 128Mi
      cpuLimit: 500m
      cpuRequest: 30m
      env:
        - name: NVIM_DISTRO
          value: ''
        - name: DOTFILES_REPO
          value: 'https://github.com/pfeifferj/dotfiles'
        - name: NEOCHE_SHELL
          value: ''
      volumeMounts:
        - name: neovim
          path: /neovim
      endpoints:
        - name: neovim
          attributes:
            type: main
            cookiesAuthEnabled: true
            discoverable: false
            urlRewriteSupported: true
          targetPort: 7681
          exposure: public
          secure: true
          protocol: https
    attributes:
      app.kubernetes.io/component: neovim-runtime
      app.kubernetes.io/part-of: neoche.eclipse.org
      controller.devfile.io/container-contribution: true
  - name: neovim
    volume: {}
