Repository: MashMB/nvim-ide
Branch: master
Commit: 3c9b2b1aabc0
Files: 59
Total size: 44.7 KB
Directory structure:
gitextract_n3vngbze/
├── .gitignore
├── LICENSE.md
├── Makefile
├── README.md
├── nvim/
│ ├── Dockerfile
│ ├── config/
│ │ ├── airline/
│ │ │ └── airline.vim
│ │ ├── coc/
│ │ │ ├── coc.vim
│ │ │ └── extensions.vim
│ │ ├── coc-settings.json
│ │ ├── fzf/
│ │ │ └── fzf.vim
│ │ ├── general/
│ │ │ ├── keys.vim
│ │ │ └── settings.vim
│ │ ├── git/
│ │ │ ├── fugitive.vim
│ │ │ └── fzf-checkout.vim
│ │ ├── gruvbox/
│ │ │ └── gruvbox.vim
│ │ ├── init.vim
│ │ ├── nerdtree/
│ │ │ ├── nerdtree-git.vim
│ │ │ └── nerdtree.vim
│ │ ├── startify/
│ │ │ └── startify.vim
│ │ ├── telescope/
│ │ │ └── telescope.vim
│ │ ├── treesitter/
│ │ │ └── treesitter.vim
│ │ └── vimspector/
│ │ └── vimspector.vim
│ ├── home/
│ │ └── .bashrc
│ └── spell/
│ ├── pl.utf-8.spl
│ └── uk.utf-8.spl
├── nvim-flutter/
│ ├── Dockerfile
│ ├── config/
│ │ ├── coc/
│ │ │ └── extensions.vim
│ │ ├── coc-settings.json
│ │ └── treesitter/
│ │ └── treesitter.vim
│ └── home/
│ └── .bashrc
├── nvim-go/
│ ├── Dockerfile
│ └── config/
│ ├── coc/
│ │ └── extensions.vim
│ ├── coc-settings.json
│ └── treesitter/
│ └── treesitter.vim
├── nvim-jdk8/
│ ├── Dockerfile
│ ├── config/
│ │ ├── coc/
│ │ │ └── extensions.vim
│ │ ├── coc-settings.json
│ │ └── treesitter/
│ │ └── treesitter.vim
│ └── home/
│ └── .bashrc
├── nvim-latex/
│ ├── Dockerfile
│ └── config/
│ ├── coc/
│ │ └── extensions.vim
│ ├── coc-settings.json
│ └── treesitter/
│ └── treesitter.vim
├── nvim-ojdk11/
│ ├── Dockerfile
│ └── config/
│ ├── coc/
│ │ └── extensions.vim
│ ├── coc-settings.json
│ └── treesitter/
│ └── treesitter.vim
├── nvim-ojdk17/
│ ├── Dockerfile
│ └── config/
│ ├── coc/
│ │ └── extensions.vim
│ ├── coc-settings.json
│ └── treesitter/
│ └── treesitter.vim
├── nvim-python3/
│ ├── Dockerfile
│ ├── config/
│ │ ├── coc/
│ │ │ └── extensions.vim
│ │ ├── coc-settings.json
│ │ └── treesitter/
│ │ └── treesitter.vim
│ └── env/
│ └── requirements.txt
└── nvim-ts/
├── Dockerfile
└── config/
├── coc-settings.json
└── treesitter/
└── treesitter.vim
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Git ignore rules.
#
# @author Maciej Bedra
### Docker ###
# Test compose files
**/docker-compose.yml
================================================
FILE: LICENSE.md
================================================
MIT License
Copyright (c) 2020 Maciej Bedra
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: Makefile
================================================
# Makefile for Neovim IDE.
#
# @author Maciej Bedra
nvim = mashmb/nvim:dev
nvim-flutter = mashmb/nvim-flutter:dev
nvim-go = mashmb/nvim-go:dev
nvim-jdk8 = mashmb/nvim-jdk8:dev
nvim-latex = mashmb/nvim-latex:dev
nvim-ojdk11 = mashmb/nvim-ojdk11:dev
nvim-ojdk17 = mashmb/nvim-ojdk17:dev
nvim-python3 = mashmb/nvim-python3:dev
nvim-ts = mashmb/nvim-ts:dev
all-build = build-nvim build-nvim-flutter build-nvim-go build-nvim-jdk8 build-nvim-latex build-nvim-ojdk11 build-nvim-ojdk17 build-nvim-python3 build-nvim-ts
all-push = push-nvim push-nvim-flutter push-nvim-go push-nvim-jdk8 push-nvim-latex push-nvim-ojdk11 push-nvim-ojdk17 push-nvim-python3 push-nvim-ts
all-clean = clean-nvim clean-nvim-flutter clean-nvim-go clean-nvim-jdk8 clean-nvim-latex clean-nvim-ojdk11 clean-nvim-ojdk17 clean-nvim-python3 clean-nvim-ts
all: $(all-build) $(all-push) $(all-clean)
login:
docker login
build-nvim:
echo "--- Building $(nvim) image ---"
cd nvim && docker build -t $(nvim) .
build-nvim-flutter:
echo "--- Building $(nvim-flutter) image ---"
cd nvim-flutter && docker build -t $(nvim-flutter) .
build-nvim-go:
echo "--- Building $(nvim-go) image ---"
cd nvim-go && docker build -t $(nvim-go) .
build-nvim-jdk8:
echo "--- Building $(nvim-jdk8) image ---"
cd nvim-jdk8 && docker build -t $(nvim-jdk8) .
build-nvim-latex:
echo "--- Building $(nvim-latex) image ---"
cd nvim-latex && docker build -t $(nvim-latex) .
build-nvim-ojdk11:
echo "--- Building $(nvim-ojdk11) image ---"
cd nvim-ojdk11 && docker build -t $(nvim-ojdk11) .
build-nvim-ojdk17:
echo "--- Building $(nvim-ojdk17) image ---"
cd nvim-ojdk17 && docker build -t $(nvim-ojdk17) .
build-nvim-python3:
echo "--- Building $(nvim-python3) image ---"
cd nvim-python3 && docker build -t $(nvim-python3) .
build-nvim-ts:
echo "--- Building $(nvim-ts) image ---"
cd nvim-ts && docker build -t $(nvim-ts) .
push-nvim: login
echo "--- Pushing $(nvim) image ---"
docker push $(nvim)
push-nvim-flutter: login
echo "--- Pushing $(nvim-flutter) image ---"
docker push $(nvim-flutter)
push-nvim-go: login
echo "--- Pushing $(nvim-go) image ---"
docker push $(nvim-go)
push-nvim-jdk8: login
echo "--- Pushing $(nvim-jdk8) image ---"
docker push $(nvim-jdk8)
push-nvim-latex: login
echo "--- Pushing $(nvim-latex) image ---"
docker push $(nvim-latex)
push-nvim-ojdk11: login
echo "--- Pushing $(nvim-ojdk11) image ---"
docker push $(nvim-ojdk11)
push-nvim-ojdk17: login
echo "--- Pushing $(nvim-ojdk17) image ---"
docker push $(nvim-ojdk17)
push-nvim-python3: login
echo "--- Pushing $(nvim-python3) image ---"
docker push $(nvim-python3)
push-nvim-ts: login
echo "--- Pushing $(nvim-ts) image ---"
docker push $(nvim-ts)
clean-nvim:
echo "--- Removing $(nvim) image ---"
docker image rm -f $(nvim)
clean-nvim-flutter:
echo "--- Removing $(nvim-flutter) image ---"
docker image rm -f $(nvim-flutter)
clean-nvim-go:
echo "--- Removing $(nvim-go) image ---"
docker image rm -f $(nvim-go)
clean-nvim-jdk8:
echo "--- Removing $(nvim-jdk8) image ---"
docker image rm -f $(nvim-jdk8)
clean-nvim-latex:
echo "--- Removing $(nvim-latex) image ---"
docker image rm -f $(nvim-latex)
clean-nvim-ojdk11:
echo "--- Removing $(nvim-ojdk11) image ---"
docker image rm -f $(nvim-ojdk11)
clean-nvim-ojdk17:
echo "--- Removing $(nvim-ojdk17) image ---"
docker image rm -f $(nvim-ojdk17)
clean-nvim-python3:
echo "--- Removing $(nvim-python3) image ---"
docker image rm -f $(nvim-python3)
clean-nvim-ts:
echo "--- Removing $(nvim-ts) image ---"
docker image rm -f $(nvim-ts)
================================================
FILE: README.md
================================================
# Neovim IDE
Neovim as IDE in Docker container. The idea is to create comfy programming environment for various languages with usage
of Docker. On host machine there should be the least of dependencies connected with development environment. Only Docker
should be required, so development environment can be used on any computer - work, private or even VPS. Base image will
contain Git and Neovim installation with basic configuration for itself and extensions like file explorer, Git
integration, support for files like JSON, HTML, CSS, etc. From base image there will be created images for specific
programming languages, so base configuration will be extended per programming language.
All images build with this repository will be available on [Docker Hub](https://hub.docker.com/u/mashmb).
<p align="center">
<img src="img/coc.png"/>
</p>
<p align="center">
<img src="img/git.png"/>
</p>
<p align="center">
<img src="img/files-tree.png"/>
</p>
**WARNING**: all images on [Docker Hub](https://hub.docker.com/u/mashmb) with **dev** tag are using the newest stable
version of Neovim installed from source.
## Images
Detailed images description (every directory matches single image, directory name represents image name).
How to run image? For testing it could be:
```shell
docker run -it mashmb/nvim:[tag] /bin/bash
```
For work suggested is **docker-compose.yml** file where configuration will be more tidy. Programming projects should
be mounted from host to **/root/workspace/** directory:
```yml
version: '3.8'
services:
nvim:
image: mashmb/nvim:[tag]
deploy:
replicas: 1
resources:
limits:
memory: 2G
volumes:
- [path_to_projects]:/root/workspace
```
### nvim
Base Neovim image. Software installed:
1. **curl** - for downloading stuff
2. **fzf** - for fast files search
3. **ripgrep** - for fast text occurrence search
4. **tree** - files tree visualization
5. **Git** - Git support inside container (with GIT Flow)
6. **Lazygit** - Git visualization inside terminal
7. **xclip** - clipboard handling
8. **Python 3** - for proper Neovim work
9. **pip** - for Python 3
10. **NodeJS** - for proper Neovim work
11. **npm** - for NodeJS
12. **tzdata** - for default container timezone settings
13. Everything needed to install Neovim from source
All components for Neovim are installed (pynvim with pip and neovim with npm).
Image contains general settings and some key bindings for Neovim (saved in **/root/.config/nvim/general/**).
Spell check for English and Polish is added.
Europe/Warsaw as default timezone.
Extensions are managed by Vim Plug. Installed and configured extensions:
1. Gruvbox theme
2. Airline status bar
3. Files tree (with Git integration and icons pack)
4. Welcome screen
5. Fuzzy finder (search for file and text occurrence)
7. Git integration
8. Hex colors preview support
9. Conquer of completion:
- Code completion
- Code documentation
- Symbols and references highlighting
- Code formatting
- Code actions (optimize imports, generate, etc.)
- Project scope renaming
- Go to definition
- Go to type definition
- Go to implementation
- Go to declaration
- References
- Quick fix
- Code diagnostics
- Code outline
- Symbols search
9. Debugger
Supported languages:
1. CSS
2. HTML
3. JavaScript
4. JSON
5. SH
6. SQL
7. YAML
For users that type really fast on keyboard, Conquer of Completion can be too slow. You can disable auto completion with
setting in **coc-settings.json**:
```
"suggest.autoTrigger": "none"
```
Completion will be available on shortcut **Ctrl + Space**.
File can be saved once without formatting with **noa w** command.
Additionally there are some Bash aliases:
```
alias cl="clear"
alias ls="ls -al --color"
alias du="du -h"
alias vi="nvim"
alias vim="nvim"
alias lg="lazygit"
alias gf="git flow"
```
Neovim background is transparent. It can be disabled in Neovim configuration (.config/nvim/general/settings.vim line **85**).
### nvim-flutter
Image dedicated for Flutter development. It is overriding the base **nvim** image. Conquer of completion is realized
with:
- coc-flutter
- dart-vim-plugin (syntax highlighting)
This image contains raw Flutter installation (no Android SDK, etc.).
For Android development follow the [tutorial](https://dev.to/enriquem/android-sdk-without-studio-3idg). There are two
ways to run Android emulator:
1. Install and configure `xauth` ([tutorial](https://www.geeksforgeeks.org/running-gui-applications-on-docker-in-linux/)),
nextly install emulator in container and run it (remember about Docker privileged mode - without it there will be no
hardware acceleration required by emulator).
2. Install Android SDK on host and in Docker container, connect to emulator on host over `adb`.
### nvim-go
Image dedicated for Go development. It is overriding the base **nvim** image. Conquer of completion is realized with:
- coc-go
- gopls
Image has configured debugger for Go development with usage of **vimspector** (required **Delve** is installed also).
### nvim-jdk8
Image dedicated for Oracle Java 8 development. It is overriding the base **nvim** image. Conquer of completion is
realized with:
- coc-java
- [Eclipse JDT Language Server](https://download.eclipse.org/jdtls/milestones/0.57.0/) (for Oracle Java 8, version
0.57.0 is required)
Image has configured debugger for Oracle Java 8 with usage of **vimspector** and
[coc-java-debug](https://github.com/dansomething/coc-java-debug).
Additionally **coc-xml** is installed for proper XML files handling with Java.
**NOTE**: to use [Lombok](https://projectlombok.org/) it should be downloaded and mounted to container. Nextly it should
be configured in **coc-settings.json**:
```json
{
"java.jdt.ls.vmargs": "-javaagent:[path]/lombok.jar"
// "java.jdt.ls.vmargs": "-javaagent:[path]/lombok.jar -Xbootclasspath/a:[path]/lombok.jar" // older Java versions
}
```
### nvim-latex
Image dedicated for LaTeX files edition. It is overriding the base **nvim** image. Conquer of completion is realized with:
- coc-texlab
PDF output file can be built with `:CocCommand latex.Build [file.pdf]`
### nvim-ojdk11
Image dedicated for OpenJDK 11 (Java 11) development. It is overriding the base **nvim** image. Conquer of completion is
realized with:
- coc-java
- [Eclipse JDT Language Server](https://download.eclipse.org/jdtls/)
Image has configured debugger for OpenJDK 11 with usage of **vimspector** and
[coc-java-debug](https://github.com/dansomething/coc-java-debug).
Additionally **coc-xml** is installed for proper XML files handling with Java.
**NOTE**: to use [Lombok](https://projectlombok.org/) it should be downloaded and mounted to container. Nextly it should
be configured in **coc-settings.json**:
```json
{
"java.jdt.ls.vmargs": "-javaagent:[path]/lombok.jar"
// "java.jdt.ls.vmargs": "-javaagent:[path]/lombok.jar -Xbootclasspath/a:[path]/lombok.jar" // older Java versions
}
```
### nvim-ojdk17
Image dedicated for OpenJDK 17 (Java 17) development. It is overriding the base **nvim** image. Conquer of completion is
realized with:
- coc-java
- [Eclipse JDT Language Server](https://download.eclipse.org/jdtls/)
Image has configured debugger for OpenJDK 11 with usage of **vimspector** and
[coc-java-debug](https://github.com/dansomething/coc-java-debug).
Additionally **coc-xml** is installed for proper XML files handling with Java.
**NOTE**: to use [Lombok](https://projectlombok.org/) it should be downloaded and mounted to container. Nextly it should
be configured in **coc-settings.json**:
```json
{
"java.jdt.ls.vmargs": "-javaagent:[path]/lombok.jar"
// "java.jdt.ls.vmargs": "-javaagent:[path]/lombok.jar -Xbootclasspath/a:[path]/lombok.jar" // older Java versions
}
```
### nvim-python3
Image dedicated for Python3 development. It is overriding the base **nvim** image. Conquer of completion is realized with:
- coc-pyright
- coc-python
- jedi-language-server
Image has configured debugger for Python3 development with usage of **vimspector**.
All dependencies used to Python3 development are installed in virtual environment (/root/.env) so it can be easily
modified with usage of volumes mounting. All user created virtual environments should be mounted in /root/envs.
For more flexible workspace manging, *pyrightconfig.json* file can be created and mounted in */root/* directory. Example
configuration used to avoid import errors in workspace without *env*:
```json
{
"reportMissingImports": false,
"reportGeneralTypeIssues": false
}
```
### nvim-ts
Image dedicated for Typescript development. It is overriding the base **nvim** image. Conquer of completion is realized
with:
- coc-tsserver
Image has configured debugger for Typescript development with usage of **vimspector**.
================================================
FILE: nvim/Dockerfile
================================================
# Docker file for base Neovim image.
#
# @author Maciej Bedra
# Debian image as base (unstable for newest software).
FROM debian:sid-20211220
# Set image locale.
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV TZ=Europe/Warsaw
# Expose some ports to host by default.
EXPOSE 8080 8081 8082 8083 8084 8085
# Define which Neovim COC extensions should be installed.
ARG COC='coc-css coc-eslint coc-html coc-json coc-sh coc-sql coc-tsserver coc-yaml'
# Lazygit variables
ARG LG='lazygit'
ARG LG_GITHUB='https://github.com/jesseduffield/lazygit/releases/download/v0.31.4/lazygit_0.31.4_Linux_x86_64.tar.gz'
ARG LG_ARCHIVE='lazygit.tar.gz'
# GIT Flow variables
ARG GIT_FLOW_GITHUB='https://github.com/petervanderdoes/gitflow-avh.git'
ARG GIT_FLOW_DIR='gitflow-avh'
# Update repositories and install software:
# 1. curl.
# 2. fzf for fast file search.
# 3. ripgrep for fast text occurrence search.
# 4. tree for files tree visualization.
# 5. Git.
# 6. Lazygit for Git visualization.
# 7. xclip for clipboard handling.
# 8. Python 3.
# 9. pip for Python.
# 10. NodeJS.
# 11. npm for NodeJS.
# 12. tzdata to set default container timezone.
# 13. Everything needed to install Neovim from source.
RUN apt-get update && apt-get -y install curl fzf ripgrep tree git xclip python3 python3-pip nodejs npm tzdata ninja-build gettext libtool libtool-bin autoconf automake cmake g++ pkg-config zip unzip
# Cooperate Neovim with Python 3.
RUN pip3 install pynvim
# Cooperate NodeJS with Neovim.
RUN npm i -g neovim
# Install Neovim from source.
RUN mkdir -p /root/TMP
RUN cd /root/TMP && git clone https://github.com/neovim/neovim
RUN cd /root/TMP/neovim && git checkout stable && make -j4 && make install
RUN rm -rf /root/TMP
# Create directory for Neovim spell check dictionaries.
RUN mkdir -p /root/.local/share/nvim/site/spell
# Copy Neovim dictionaries.
COPY ./spell/ /root/.local/share/nvim/site/spell/
# Install Vim Plug.
RUN curl -fLo /root/.local/share/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
# Create directory for Neovim configuration files.
RUN mkdir -p /root/.config/nvim
# Copy Neovim configuration files.
COPY ./config/ /root/.config/nvim/
# Install Neovim extensions.
RUN nvim --headless +PlugInstall +qall
# Create directory for Neovim COC extensions.
RUN mkdir -p /root/.config/coc/extensions
# Install Neovim COC extensions.
RUN cd /root/.config/coc/extensions && npm install $COC --global --only=prod
# Create TMP directory
RUN mkdir -p /root/TMP
# Install Lazygit from binary
RUN cd /root/TMP && curl -L -o $LG_ARCHIVE $LG_GITHUB
RUN cd /root/TMP && tar xzvf $LG_ARCHIVE && mv $LG /usr/bin/
# Install GIT Flow
RUN cd /root/TMP && git clone $GIT_FLOW_GITHUB
RUN cd /root/TMP/$GIT_FLOW_DIR && git checkout master && make install
# Delete TMP directory
RUN rm -rf /root/TMP
# Bash aliases
COPY ./home/ /root/
# Create directory for projects (there should be mounted from host).
RUN mkdir -p /root/workspace
# Set default location after container startup.
WORKDIR /root/workspace
# Avoid container exit.
CMD ["tail", "-f", "/dev/null"]
================================================
FILE: nvim/config/airline/airline.vim
================================================
" Configuration for Airline status bar.
"
" @author Maciej Bedra
" Status bar theme
let g:airline_theme = 'minimalist'
" No empty sections
let g:airline_skip_empty_sections = 1
" User power line fonts
let g:airline_powerline_fonts = 1
" Fix for missing power line symbols
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
" Unicode symbols
let g:airline_left_sep = ''
let g:airline_left_sep = ''
let g:airline_right_sep = ''
let g:airline_right_sep = ''
let g:airline_symbols.linenr = '␊'
let g:airline_symbols.linenr = ''
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.branch = '⎇'
let g:airline_symbols.paste = 'ρ'
let g:airline_symbols.paste = 'Þ'
let g:airline_symbols.paste = '∥'
let g:airline_symbols.whitespace = 'Ξ'
" Airline symbols
let g:airline_left_sep = ''
let g:airline_left_sep = ''
let g:airline_right_sep = ''
let g:airline_right_sep = ''
let g:airline_symbols.branch = ''
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = ''
================================================
FILE: nvim/config/coc/coc.vim
================================================
" Conquer of completion configuration.
"
" @author Maciej Bedra
" Do not pass messages to ins-completion-menu
set shortmess+=c
" Do not shift text with sign column
if has("patch-8.1.1564")
set signcolumn=number
else
set signcolumn=yes
endif
" Code completion
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
" Key binding used to trigger completion
inoremap <silent><expr> <C-Space> coc#refresh()
" Confirm completion
inoremap <silent><expr> <CR> pumvisible() ? coc#_select_confirm()
\: "\<C-g>u\<CR>\<C-r>=coc#on_enter()\<CR>"
" Key binding for programming documentation
nnoremap <silent> <leader>d :call <SID>show_documentation()<CR>
function! s:show_documentation()
if (index(['vim', 'help'], &filetype) >= 0)
execute'h '.expand('<cword>')
elseif (coc#rpc#ready())
call CocActionAsync('doHover')
else
execute '!' . &keywordprg . " " . expand('<cword>')
endif
endfunction
" Key bindings used to scroll pop ups content
nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<C-r>=coc#float#scroll(1)\<CR>" : "\<Right>"
inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<C-r>=coc#float#scroll(0)\<CR>" : "\<Left>"
vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
" Highlight symbol and references on cursor hold
autocmd CursorHold * silent call CocActionAsync('highlight')
" Key binding used to format code
nmap <leader>cf <Plug>(coc-format)
" Key binding for code action (optimize imports, generate code, etc.)
nmap <leader>ca <Plug>(coc-codeaction)
" Key binding used for symbol rename
nmap <F2> <Plug>(coc-rename)
" Key binding used to go to definition
nmap <leader>cd <Plug>(coc-definition)
" Key binding used to go to type definition
nmap <leader>ct <Plug>(coc-type-definition)
" Key binding used to to to implementation
nmap <leader>ci <Plug>(coc-implementation)
" Key binding used to go to declaration
nmap <leader>cr <Plug>(coc-declaration)
" Key binding used to find usages
nmap <leader>cu <Plug>(coc-references)
" Key binding for quick fix
nmap <leader>cq <Plug>(coc-fix-current)
" Key binding used to show code errors, warnings, etc.
nmap <leader>ce :CocList diagnostics<CR>
" Key binding for code outline
nmap <M-7> :CocList outline<CR>
" Key binding used to find symbol
nmap <leader>cs :CocList -I symbols<CR>
================================================
FILE: nvim/config/coc/extensions.vim
================================================
" Conquer of completion extensions.
"
" @author Maciej Bedra
" Globally available extensions
let g:coc_global_extensions = [
\ 'coc-css',
\ 'coc-eslint',
\ 'coc-html',
\ 'coc-json',
\ 'coc-sh',
\ 'coc-sql',
\ 'coc-tsserver',
\ 'coc-yaml',
\ ]
================================================
FILE: nvim/config/coc-settings.json
================================================
{
"coc.preferences.formatOnSaveFiletypes": [
"css",
"html",
"javascript",
"json",
"sh",
"sql",
"yaml"
],
"codeLens.enable": true,
"yaml.format.enable": true
}
================================================
FILE: nvim/config/fzf/fzf.vim
================================================
" Configuration for fuzzy finder.
"
" @author Maciej Bedra
" Search result on top
let $FZF_DEFAULT_OPTS = '--reverse'
" Fuzzy finder as pop up
let g:fzf_layout = { 'window': { 'width': 0.8, 'height': 0.6 } }
" Key binding used to launch fuzzy finder (file search)
" nmap <C-_> :FZF<CR>
" Key binding used to launch fuzzy finder (text occurrence)
" nmap <C-_><C-_> :Rg<CR>
================================================
FILE: nvim/config/general/keys.vim
================================================
" Key binding for Neovim out of the box.
"
" @author Maciej Bedra
" More handy insert mode exit
inoremap jk <Esc>
inoremap kj <Esc>
" Navigation between splits
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
" Splits resizing
nnoremap <M-j> :resize -2<CR>
nnoremap <M-k> :resize +2<CR>
nnoremap <M-h> :vertical resize -2<CR>
nnoremap <M-l> :vertical resize +2<CR>
" Editor tabs navigation
nnoremap <TAB> :tabnext<CR>
nnoremap <S-TAB> :tabprevious<CR>
" Completion
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
" More handy line 'tabbing'
vnoremap < <gv
vnoremap > >gv
================================================
FILE: nvim/config/general/settings.vim
================================================
" General settings for Neovim out of the box.
"
" @author Maciej Bedra
" Set leader key
let g:mapleader = "\<Space>"
" Enable syntax highlighting
syntax enable
" Keep multiple buffers open
set hidden
" Long lines not wrapped
set nowrap
" Default encoding
set encoding=utf-8
set fileencoding=utf-8
" Smaller pop up menu
set pumheight=10
" Show cursor position all the time
set ruler
" More space for messages
set cmdheight=2
" Treat dash separated words as a word text object
set iskeyword+=-
" Enable mouse
set mouse=a
" Horizontal splits on bottom
set splitbelow
" Vertical splits on right
set splitright
" 256 colors support
set t_Co=256
" More visible '`' character
set conceallevel=0
" 2 Spaces for TAB
set tabstop=2
" 2 Spaces for indention
set shiftwidth=2
" Smart TAB's
set smarttab
" Convert TAB's to Spaces
set expandtab
" Smart indents
set smartindent
" Support auto indent
set autoindent
" Status line
set laststatus=0
" Line numbers
set number relativenumber
" Highlight current line
set cursorline
" Smooth scroll
set so=999
" Max line length
set colorcolumn=120
" Background color
set background=dark
" Transparent background
autocmd VimEnter * hi Normal ctermbg=none
" Show TAB's
set showtabline=2
" Do not display mode
set noshowmode
" Disable backup
set nobackup
set nowritebackup
" Faster completion
set updatetime=300
" Short timeout
set timeoutlen=500
" Stop new line comment continuation
set formatoptions-=cro
" Shared clipboard
set clipboard=unnamedplus
" Spell check
set spell spelllang=en_us,pl
" Auto source while writing to init.vim
au! BufWritePost $MYVIMRC source %
cmap w!! w !sudo tee %
================================================
FILE: nvim/config/git/fugitive.vim
================================================
" Configuration for Git with Neovim integration.
"
" @author Maciej Bedra
" Key binding for Git status
nmap <leader>gs :Git<CR>
" Key binding for Git commit
nmap <leader>gc :Git commit<CR>
" Key binding for Git push
nmap <leader>gp :Git push<CR>
" Key binding for Git log
nmap <leader>gl :Gclog<CR>
" Key binding to get left chunk in merge conflict
nmap <leader>dh :diffget //2<CR>
" Key binding to get right chunk in merge conflict
nmap <leader>dl :diffget //3<CR>
================================================
FILE: nvim/config/git/fzf-checkout.vim
================================================
" Configuration for Git branches fuzzy finder.
"
" @author Maciej Bedra
" Key binding use to run Git branches fuzzy finder
nmap <leader>gb :GBranches<CR>
================================================
FILE: nvim/config/gruvbox/gruvbox.vim
================================================
" Configuration for Neovim Gruvbox theme.
"
" @author Maciej Bedra
" Use darker color scheme
let g:gruvbox_contrast_dark = 'hard'
" Activate theme
colorscheme gruvbox
================================================
FILE: nvim/config/init.vim
================================================
" Neovim initialization file.
"
" @author Maciej Bedra
" Configuration for Neovim out of the box
source /root/.config/nvim/general/settings.vim
source /root/.config/nvim/general/keys.vim
" Neovim extensions
call plug#begin('/root/.config/nvim/plugins')
Plug 'morhetz/gruvbox'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'preservim/nerdtree'
Plug 'Xuyuanp/nerdtree-git-plugin'
Plug 'ryanoasis/vim-devicons'
Plug 'kyazdani42/nvim-web-devicons'
Plug 'mhinz/vim-startify'
Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-telescope/telescope.nvim'
Plug 'junegunn/fzf'
Plug 'junegunn/fzf.vim'
Plug 'tpope/vim-fugitive'
Plug 'stsewd/fzf-checkout.vim'
Plug 'airblade/vim-gitgutter'
Plug 'ap/vim-css-color'
Plug 'nvim-treesitter/nvim-treesitter'
Plug 'neoclide/coc.nvim', { 'branch': 'release' }
Plug 'puremourning/vimspector'
call plug#end()
" Extensions configuration
source /root/.config/nvim/gruvbox/gruvbox.vim
source /root/.config/nvim/airline/airline.vim
source /root/.config/nvim/nerdtree/nerdtree.vim
source /root/.config/nvim/nerdtree/nerdtree-git.vim
source /root/.config/nvim/startify/startify.vim
source /root/.config/nvim/telescope/telescope.vim
source /root/.config/nvim/fzf/fzf.vim
source /root/.config/nvim/git/fugitive.vim
source /root/.config/nvim/git/fzf-checkout.vim
source /root/.config/nvim/treesitter/treesitter.vim
source /root/.config/nvim/coc/coc.vim
source /root/.config/nvim/coc/extensions.vim
source /root/.config/nvim/vimspector/vimspector.vim
================================================
FILE: nvim/config/nerdtree/nerdtree-git.vim
================================================
" Git integration with files tree.
"
" @author Maciej Bedra
" Activate Nerd fonts
let g:NERDTreeGitStatusUseNerdFonts = 1
================================================
FILE: nvim/config/nerdtree/nerdtree.vim
================================================
" Configuration for files tree.
"
" @author Maciej Bedra
" Show hidden files by default
let NERDTreeShowHidden=1
" Key binding used to open/close files tree
nmap <M-1> :NERDTreeToggle<CR>
================================================
FILE: nvim/config/startify/startify.vim
================================================
" Configuration for Neovim welcome screen.
"
" @author Maciej Bedra
" Welcome header
let g:startify_custom_header = [
\' ( * ',
\' )\ ) ( ` ',
\' ( ( (()/( )\))( ',
\' )\ )\ /(_))((_)()\ ',
\'((_)((_)(_)) (_()((_)',
\'\ \ / / |_ _| | \/ |',
\' \ V / | | | |\/| |',
\' \_/ |___| |_| |_|',
\]
================================================
FILE: nvim/config/telescope/telescope.vim
================================================
" Telescope fuzzy finder configuration.
"
" @author Maciej Bedra
" Key binding used to launch fuzzy finder (file search)
nmap <C-_> <cmd>Telescope find_files<CR>
" Key binding used to launch fuzzy finder (text occurrence)
nmap <C-_><C-_> <cmd>Telescope live_grep<CR>
" Telescope defaults.
lua << EOF
require('telescope').setup{
defaults = {
vimgrep_arguments = {
'rg',
'--color=never',
'--no-heading',
'--with-filename',
'--line-number',
'--column',
'--smart-case'
},
prompt_prefix = "> ",
selection_caret = "> ",
entry_prefix = " ",
initial_mode = "insert",
selection_strategy = "reset",
sorting_strategy = "descending",
layout_strategy = "horizontal",
layout_config = {
horizontal = {
mirror = false,
},
vertical = {
mirror = false,
},
},
file_sorter = require'telescope.sorters'.get_fuzzy_file,
file_ignore_patterns = {},
generic_sorter = require'telescope.sorters'.get_generic_fuzzy_sorter,
winblend = 0,
border = {},
borderchars = { '─', '│', '─', '│', '╭', '╮', '╯', '╰' },
color_devicons = true,
use_less = true,
path_display = {},
set_env = { ['COLORTERM'] = 'truecolor' }, -- default = nil,
file_previewer = require'telescope.previewers'.vim_buffer_cat.new,
grep_previewer = require'telescope.previewers'.vim_buffer_vimgrep.new,
qflist_previewer = require'telescope.previewers'.vim_buffer_qflist.new,
buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker,
disable_devicons = false,
}
}
EOF
================================================
FILE: nvim/config/treesitter/treesitter.vim
================================================
" Code highlight configuration.
"
" @author Maciej Bedra
" Treesitter setup.
lua << EOF
require'nvim-treesitter.configs'.setup {
highlight = {
enable = true,
disable = {},
},
indent = {
enable = false,
disable = {},
},
ensure_installed = {
"css",
"html",
"javascript",
"json",
"yaml"
},
}
EOF
================================================
FILE: nvim/config/vimspector/vimspector.vim
================================================
" Configuration for Neovim debugger.
"
" @author Maciej Bedra
" Enable HUMAN key bindings for debugging.
let g:vimspector_enable_mappings = 'HUMAN'
================================================
FILE: nvim/home/.bashrc
================================================
# ~/.bashrc: executed by bash(1) for non-login shells.
# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
# umask 022
# You may uncomment the following lines if you want `ls' to be colorized:
# export LS_OPTIONS='--color=auto'
# eval "`dircolors`"
# alias ls='ls $LS_OPTIONS'
# alias ll='ls $LS_OPTIONS -l'
# alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'
source /usr/share/bash-completion/completions/fzf
source /usr/share/doc/fzf/examples/key-bindings.bash
export FZF_DEFAULT_OPTS="--reverse --no-height"
alias cl="clear"
alias ls="ls -al --color"
alias du="du -h"
alias vi="nvim"
alias vim="nvim"
alias lg="lazygit"
alias gf="git flow"
================================================
FILE: nvim-flutter/Dockerfile
================================================
# Docker file for Neovim Flutter development.
#
# @author Maciej Bedra
# Base Neovim image.
FROM mashmb/nvim:dev
# Neovim COC extensions for Flutter development.
ARG COC='coc-flutter'
# Install necessary system utilities.
RUN apt-get update && apt-get -y install unzip xz-utils zip
# Install Flutter.
RUN cd /root && git clone https://github.com/flutter/flutter.git -b stable --depth 1
RUN /root/flutter/bin/flutter doctor
# Add Flutter to PATH.
COPY ./home/ /root/
# Install Neovim COC extensions.
RUN cd /root/.config/coc/extensions && npm install $COC --global --only=prod
# Copy Neovim configuration files.
COPY ./config/ /root/.config/nvim/
# Avoid container exit.
CMD ["tail", "-f", "/dev/null"]
================================================
FILE: nvim-flutter/config/coc/extensions.vim
================================================
" Conquer of completion extensions.
"
" @author Maciej Bedra
" Globally available extensions
let g:coc_global_extensions = [
\ 'coc-css',
\ 'coc-eslint',
\ 'coc-flutter',
\ 'coc-html',
\ 'coc-json',
\ 'coc-sh',
\ 'coc-sql',
\ 'coc-tsserver',
\ 'coc-yaml',
\ ]
================================================
FILE: nvim-flutter/config/coc-settings.json
================================================
{
"coc.preferences.formatOnSaveFiletypes": [
"css",
"dart",
"html",
"javascript",
"json",
"sh",
"sql",
"yaml"
],
"codeLens.enable": true,
"yaml.format.enable": true
}
================================================
FILE: nvim-flutter/config/treesitter/treesitter.vim
================================================
" Code highlight configuration.
"
" @author Maciej Bedra
" Treesitter setup.
lua << EOF
require'nvim-treesitter.configs'.setup {
highlight = {
enable = true,
disable = {},
},
indent = {
enable = false,
disable = {},
},
ensure_installed = {
"css",
"dart",
"html",
"javascript",
"json",
"yaml"
},
}
EOF
================================================
FILE: nvim-flutter/home/.bashrc
================================================
# ~/.bashrc: executed by bash(1) for non-login shells.
# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
# umask 022
# You may uncomment the following lines if you want `ls' to be colorized:
# export LS_OPTIONS='--color=auto'
# eval "`dircolors`"
# alias ls='ls $LS_OPTIONS'
# alias ll='ls $LS_OPTIONS -l'
# alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'
source /usr/share/bash-completion/completions/fzf
source /usr/share/doc/fzf/examples/key-bindings.bash
export FZF_DEFAULT_OPTS="--reverse --no-height"
alias cl="clear"
alias ls="ls -al --color"
alias du="du -h"
alias vi="nvim"
alias vim="nvim"
alias lg="lazygit"
alias gf="git flow"
export PATH=/root/flutter/bin:$PATH
================================================
FILE: nvim-go/Dockerfile
================================================
# Docker file for Neovim Go development.
#
# @author Maciej Bedra
# Base Neovim image.
FROM mashmb/nvim:dev
# Neovim COC extensions for Go development.
ARG COC='coc-go'
# Install Go SDK.
RUN apt-get update && apt-get -y install golang
# Install Go language server.
RUN go install golang.org/x/tools/gopls@latest
# Install Neovim COC extensions.
RUN cd /root/.config/coc/extensions && npm install $COC --global --only=prod
# Install Go language debugger adapter.
RUN cd /root/.config/nvim/plugins/vimspector && python3 install_gadget.py --enable-go && go install github.com/go-delve/delve/cmd/dlv@latest
# Copy Neovim configuration files.
COPY ./config/ /root/.config/nvim/
# Avoid container exit.
CMD ["tail", "-f", "/dev/null"]
================================================
FILE: nvim-go/config/coc/extensions.vim
================================================
" Conquer of completion extensions.
"
" @author Maciej Bedra
" Globally available extensions
let g:coc_global_extensions = [
\ 'coc-css',
\ 'coc-eslint',
\ 'coc-go',
\ 'coc-html',
\ 'coc-json',
\ 'coc-sh',
\ 'coc-sql',
\ 'coc-tsserver',
\ 'coc-yaml',
\ ]
================================================
FILE: nvim-go/config/coc-settings.json
================================================
{
"coc.preferences.formatOnSaveFiletypes": [
"css",
"go",
"html",
"javascript",
"json",
"sh",
"sql",
"yaml"
],
"codeLens.enable": true,
"yaml.format.enable": true
}
================================================
FILE: nvim-go/config/treesitter/treesitter.vim
================================================
" Code highlight configuration.
"
" @author Maciej Bedra
" Treesitter setup.
lua << EOF
require'nvim-treesitter.configs'.setup {
highlight = {
enable = true,
disable = {},
},
indent = {
enable = false,
disable = {},
},
ensure_installed = {
"css",
"go",
"html",
"javascript",
"json",
"yaml"
},
}
EOF
================================================
FILE: nvim-jdk8/Dockerfile
================================================
# Docker file for Neovim Oracle Java 8 development.
#
# @author Maciej Bedra
# Base Neovim image.
FROM mashmb/nvim:dev
# Name of Java JDK 8 archive, installation directory and Java Language Server archive.
ARG JDK='jdk-8u321.tar.gz'
ARG JDK_DIR='jdk1.8.0_321'
ARG JDT='jdt-language-server-0.57.0-202006172108.tar.gz'
# Neovim COC extensions for Java development.
ARG COC='coc-java coc-java-debug coc-xml'
# Install JDK8 Debian requirements.
RUN apt-get update && apt-get install -y libc6-i386
# Create temporal directory for Java JDK 8 archive.
RUN mkdir -p /root/TMP
# Create directory for Java JDK 8 installation.
RUN mkdir -p /usr/lib/jvm
# Copy Java JDK 8 archive.
COPY ./jdk/ /root/TMP/
# Install Java JDK 8 from archive.
RUN cd /root/TMP && tar zxvf $JDK -C /usr/lib/jvm
# Create directory for Java Language Server.
RUN mkdir -p /root/.config/coc/extensions/coc-java-data/server
# Install Java Language Server for COC.
RUN cd /root/TMP && tar zxvf $JDT -C /root/.config/coc/extensions/coc-java-data/server
# Clean Java JDK 8 archive.
RUN rm -rf /root/TMP
# Java JDK 8 alternatives.
RUN update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/$JDK_DIR/bin/java" 1
RUN update-alternatives --set java /usr/lib/jvm/$JDK_DIR/bin/java
# Copy .bashrc with JAVA HOME configured.
COPY ./home/ /root/
# Install Neovim COC extensions.
RUN cd /root/.config/coc/extensions && npm install $COC --global --only=prod
# Copy Neovim configuration files.
COPY ./config/ /root/.config/nvim/
# Avoid container exit.
CMD ["tail", "-f", "/dev/null"]
================================================
FILE: nvim-jdk8/config/coc/extensions.vim
================================================
" Conquer of completion extensions.
"
" @author Maciej Bedra
" Globally available extensions
let g:coc_global_extensions = [
\ 'coc-css',
\ 'coc-eslint',
\ 'coc-html',
\ 'coc-java',
\ 'coc-json',
\ 'coc-sh',
\ 'coc-sql',
\ 'coc-tsserver',
\ 'coc-yaml',
\ 'coc-xml',
\ ]
================================================
FILE: nvim-jdk8/config/coc-settings.json
================================================
{
"coc.preferences.formatOnSaveFiletypes": [
"css",
"html",
"java",
"javascript",
"json",
"sh",
"sql",
"yaml",
"xml"
],
"codeLens.enable": true,
"yaml.format.enable": true,
"java.referencesCodeLens.enabled": true,
"java.implementationsCodeLens.enabled": true
}
================================================
FILE: nvim-jdk8/config/treesitter/treesitter.vim
================================================
" Code highlight configuration.
"
" @author Maciej Bedra
" Treesitter setup.
lua << EOF
require'nvim-treesitter.configs'.setup {
highlight = {
enable = true,
disable = {},
},
indent = {
enable = false,
disable = {},
},
ensure_installed = {
"css",
"html",
"java",
"javascript",
"json",
"yaml"
},
}
EOF
================================================
FILE: nvim-jdk8/home/.bashrc
================================================
# ~/.bashrc: executed by bash(1) for non-login shells.
# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
# umask 022
# You may uncomment the following lines if you want `ls' to be colorized:
# export LS_OPTIONS='--color=auto'
# eval "`dircolors`"
# alias ls='ls $LS_OPTIONS'
# alias ll='ls $LS_OPTIONS -l'
# alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'
source /usr/share/bash-completion/completions/fzf
source /usr/share/doc/fzf/examples/key-bindings.bash
export FZF_DEFAULT_OPTS="--reverse --no-height"
alias cl="clear"
alias ls="ls -al --color"
alias du="du -h"
alias vi="nvim"
alias vim="nvim"
alias lg="lazygit"
alias gf="git flow"
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_321
export PATH=$JAVA_HOME/bin:$PATH
================================================
FILE: nvim-latex/Dockerfile
================================================
# Docker file for Neovim LaTeX editor.
#
# @author Maciej Bedra
# Base Neovim image.
FROM mashmb/nvim:dev
# Install LaTeX.
RUN apt-get update && apt-get -y install texlive-latex-extra
# Neovim COC extensions for LaTeX edition.
ARG COC='coc-texlab'
# Install Neovim COC extensions.
RUN cd /root/.config/coc/extensions && npm install $COC --global --only=prod
# Copy Neovim configuration files.
COPY ./config/ /root/.config/nvim/
# Avoid container exit.
CMD ["tail", "-f", "/dev/null"]
================================================
FILE: nvim-latex/config/coc/extensions.vim
================================================
" Conquer of completion extensions.
"
" @author Maciej Bedra
" Globally available extensions
let g:coc_global_extensions = [
\ 'coc-css',
\ 'coc-eslint',
\ 'coc-html',
\ 'coc-json',
\ 'coc-sh',
\ 'coc-sql',
\ 'coc-texlab',
\ 'coc-tsserver',
\ 'coc-yaml',
\ ]
================================================
FILE: nvim-latex/config/coc-settings.json
================================================
{
"coc.preferences.formatOnSaveFiletypes": [
"css",
"html",
"javascript",
"json",
"sh",
"sql",
"tex",
"yaml"
],
"codeLens.enable": true,
"yaml.format.enable": true
}
================================================
FILE: nvim-latex/config/treesitter/treesitter.vim
================================================
" Code highlight configuration.
"
" @author Maciej Bedra
" Treesitter setup.
lua << EOF
require'nvim-treesitter.configs'.setup {
highlight = {
enable = true,
disable = {},
},
indent = {
enable = false,
disable = {},
},
ensure_installed = {
"css",
"html",
"javascript",
"json",
"latex",
"yaml"
},
}
EOF
================================================
FILE: nvim-ojdk11/Dockerfile
================================================
# Docker file for Neovim Open JDK 11 (Java 11) development.
#
# @author Maciej Bedra
# Base Neovim image.
FROM mashmb/nvim:dev
# Install Open JDK 11.
RUN apt-get update && apt-get -y install openjdk-11-jdk
# Neovim COC extensions for Java development.
ARG COC='coc-java coc-java-debug coc-xml'
# Install Neovim COC extensions.
RUN cd /root/.config/coc/extensions && npm install $COC --global --only=prod
# Copy Neovim configuration files.
COPY ./config/ /root/.config/nvim/
# Avoid container exit.
CMD ["tail", "-f", "/dev/null"]
================================================
FILE: nvim-ojdk11/config/coc/extensions.vim
================================================
" Conquer of completion extensions.
"
" @author Maciej Bedra
" Globally available extensions
let g:coc_global_extensions = [
\ 'coc-css',
\ 'coc-eslint',
\ 'coc-html',
\ 'coc-java',
\ 'coc-json',
\ 'coc-sh',
\ 'coc-sql',
\ 'coc-tsserver',
\ 'coc-yaml',
\ 'coc-xml',
\ ]
================================================
FILE: nvim-ojdk11/config/coc-settings.json
================================================
{
"coc.preferences.formatOnSaveFiletypes": [
"css",
"html",
"java",
"javascript",
"json",
"sh",
"sql",
"yaml",
"xml"
],
"codeLens.enable": true,
"yaml.format.enable": true,
"java.referencesCodeLens.enabled": true,
"java.implementationsCodeLens.enabled": true
}
================================================
FILE: nvim-ojdk11/config/treesitter/treesitter.vim
================================================
" Code highlight configuration.
"
" @author Maciej Bedra
" Treesitter setup.
lua << EOF
require'nvim-treesitter.configs'.setup {
highlight = {
enable = true,
disable = {},
},
indent = {
enable = false,
disable = {},
},
ensure_installed = {
"css",
"html",
"java",
"javascript",
"json",
"yaml"
},
}
EOF
================================================
FILE: nvim-ojdk17/Dockerfile
================================================
# Docker file for Neovim Open JDK 17 (Java 17) development.
#
# @author Maciej Bedra
# Base Neovim image.
FROM mashmb/nvim:dev
# Install Open JDK 17.
RUN apt-get update && apt-get -y install openjdk-17-jdk
# Neovim COC extensions for Java development.
ARG COC='coc-java coc-java-debug coc-xml'
# Install Neovim COC extensions.
RUN cd /root/.config/coc/extensions && npm install $COC --global --only=prod
# Copy Neovim configuration files.
COPY ./config/ /root/.config/nvim/
# Avoid container exit.
CMD ["tail", "-f", "/dev/null"]
================================================
FILE: nvim-ojdk17/config/coc/extensions.vim
================================================
" Conquer of completion extensions.
"
" @author Maciej Bedra
" Globally available extensions
let g:coc_global_extensions = [
\ 'coc-css',
\ 'coc-eslint',
\ 'coc-html',
\ 'coc-java',
\ 'coc-json',
\ 'coc-sh',
\ 'coc-sql',
\ 'coc-tsserver',
\ 'coc-yaml',
\ 'coc-xml',
\ ]
================================================
FILE: nvim-ojdk17/config/coc-settings.json
================================================
{
"coc.preferences.formatOnSaveFiletypes": [
"css",
"html",
"java",
"javascript",
"json",
"sh",
"sql",
"yaml",
"xml"
],
"codeLens.enable": true,
"yaml.format.enable": true,
"java.referencesCodeLens.enabled": true,
"java.implementationsCodeLens.enabled": true
}
================================================
FILE: nvim-ojdk17/config/treesitter/treesitter.vim
================================================
" Code highlight configuration.
"
" @author Maciej Bedra
" Treesitter setup.
lua << EOF
require'nvim-treesitter.configs'.setup {
highlight = {
enable = true,
disable = {},
},
indent = {
enable = false,
disable = {},
},
ensure_installed = {
"css",
"html",
"java",
"javascript",
"json",
"yaml"
},
}
EOF
================================================
FILE: nvim-python3/Dockerfile
================================================
# Docker file for Neovim Python3 development.
#
# @author Maciej Bedra
# Base Neovim image.
FROM mashmb/nvim:dev
# Neovim COC extensions for Python3 development.
ARG COC='coc-pyright coc-python'
# Create directory for virtual environments.
RUN mkdir -p /root/envs
# Prepare main virtual environment (for language server features).
COPY ./env/ /root/
RUN apt-get update && apt-get -y install python3-venv
RUN cd /root && python3 -m venv .env
RUN /root/.env/bin/pip install -r /root/requirements.txt
# Install Neovim COC extensions.
RUN cd /root/.config/coc/extensions && npm install $COC --global --only=prod
# Install Python language debugger adapter.
RUN cd /root/.config/nvim/plugins/vimspector && python3 install_gadget.py --enable-python
# Copy Neovim configuration files.
COPY ./config/ /root/.config/nvim/
# Avoid container exit.
CMD ["tail", "-f", "/dev/null"]
================================================
FILE: nvim-python3/config/coc/extensions.vim
================================================
" Conquer of completion extensions.
"
" @author Maciej Bedra
" Globally available extensions
let g:coc_global_extensions = [
\ 'coc-css',
\ 'coc-eslint',
\ 'coc-html',
\ 'coc-json',
\ 'coc-pyright',
\ 'coc-python',
\ 'coc-sh',
\ 'coc-sql',
\ 'coc-tsserver',
\ 'coc-yaml',
\ ]
================================================
FILE: nvim-python3/config/coc-settings.json
================================================
{
"coc.preferences.formatOnSaveFiletypes": [
"css",
"html",
"javascript",
"json",
"python",
"sh",
"sql",
"yaml"
],
"codeLens.enable": true,
"yaml.format.enable": true,
"python.pythonPath": "/root/.env/bin/python",
"python.venvPath": "/root/envs/",
"python.jediEnabled": true,
"python.jediPath": "/root/.env/lib/python3.9/site-packages/",
"python.formatting.provider": "black",
"python.formatting.blackPath": "/root/.env/bin/black",
"python.linting.pylintEnabled": true,
"python.linting.pylintPath": "/root/.env/bin/pylint",
"python.autoComplete.addBrackets": true
}
================================================
FILE: nvim-python3/config/treesitter/treesitter.vim
================================================
" Code highlight configuration.
"
" @author Maciej Bedra
" Treesitter setup.
lua << EOF
require'nvim-treesitter.configs'.setup {
highlight = {
enable = true,
disable = {},
},
indent = {
enable = false,
disable = {},
},
ensure_installed = {
"css",
"html",
"javascript",
"json",
"python",
"yaml"
},
}
EOF
================================================
FILE: nvim-python3/env/requirements.txt
================================================
appdirs==1.4.4
astroid==2.4.2
black==20.8b1
click==7.1.2
isort==5.6.4
jedi==0.17.2
jedi-language-server==0.21.0
lazy-object-proxy==1.4.3
mccabe==0.6.1
mypy-extensions==0.4.3
parso==0.7.1
pathspec==0.8.1
pygls==0.9.1
pylint==2.6.0
regex==2020.11.13
rope==0.18.0
six==1.15.0
toml==0.10.2
typed-ast==1.4.1
typing-extensions==3.7.4.3
wrapt==1.12.1
================================================
FILE: nvim-ts/Dockerfile
================================================
# Docker file for Neovim Typescript development.
#
# @author Maciej Bedra
# Base Neovim image.
FROM mashmb/nvim:dev
# Install Typescript SDK.
RUN apt-get update && apt-get -y install watchman && npm install -g typescript
# Install Node.js debugger adapter.
RUN cd /root/.config/nvim/plugins/vimspector && python3 install_gadget.py --force-enable-node
# Copy Neovim configuration files.
COPY ./config/ /root/.config/nvim/
# Avoid container exit.
CMD ["tail", "-f", "/dev/null"]
================================================
FILE: nvim-ts/config/coc-settings.json
================================================
{
"coc.preferences.formatOnSaveFiletypes": [
"css",
"html",
"javascript",
"json",
"sh",
"sql",
"typescript",
"yaml"
],
"codeLens.enable": true,
"yaml.format.enable": true
}
================================================
FILE: nvim-ts/config/treesitter/treesitter.vim
================================================
" Code highlight configuration.
"
" @author Maciej Bedra
" Treesitter setup.
lua << EOF
require'nvim-treesitter.configs'.setup {
highlight = {
enable = true,
disable = {},
},
indent = {
enable = false,
disable = {},
},
ensure_installed = {
"css",
"html",
"javascript",
"json",
"typescript",
"yaml"
},
}
EOF
gitextract_n3vngbze/
├── .gitignore
├── LICENSE.md
├── Makefile
├── README.md
├── nvim/
│ ├── Dockerfile
│ ├── config/
│ │ ├── airline/
│ │ │ └── airline.vim
│ │ ├── coc/
│ │ │ ├── coc.vim
│ │ │ └── extensions.vim
│ │ ├── coc-settings.json
│ │ ├── fzf/
│ │ │ └── fzf.vim
│ │ ├── general/
│ │ │ ├── keys.vim
│ │ │ └── settings.vim
│ │ ├── git/
│ │ │ ├── fugitive.vim
│ │ │ └── fzf-checkout.vim
│ │ ├── gruvbox/
│ │ │ └── gruvbox.vim
│ │ ├── init.vim
│ │ ├── nerdtree/
│ │ │ ├── nerdtree-git.vim
│ │ │ └── nerdtree.vim
│ │ ├── startify/
│ │ │ └── startify.vim
│ │ ├── telescope/
│ │ │ └── telescope.vim
│ │ ├── treesitter/
│ │ │ └── treesitter.vim
│ │ └── vimspector/
│ │ └── vimspector.vim
│ ├── home/
│ │ └── .bashrc
│ └── spell/
│ ├── pl.utf-8.spl
│ └── uk.utf-8.spl
├── nvim-flutter/
│ ├── Dockerfile
│ ├── config/
│ │ ├── coc/
│ │ │ └── extensions.vim
│ │ ├── coc-settings.json
│ │ └── treesitter/
│ │ └── treesitter.vim
│ └── home/
│ └── .bashrc
├── nvim-go/
│ ├── Dockerfile
│ └── config/
│ ├── coc/
│ │ └── extensions.vim
│ ├── coc-settings.json
│ └── treesitter/
│ └── treesitter.vim
├── nvim-jdk8/
│ ├── Dockerfile
│ ├── config/
│ │ ├── coc/
│ │ │ └── extensions.vim
│ │ ├── coc-settings.json
│ │ └── treesitter/
│ │ └── treesitter.vim
│ └── home/
│ └── .bashrc
├── nvim-latex/
│ ├── Dockerfile
│ └── config/
│ ├── coc/
│ │ └── extensions.vim
│ ├── coc-settings.json
│ └── treesitter/
│ └── treesitter.vim
├── nvim-ojdk11/
│ ├── Dockerfile
│ └── config/
│ ├── coc/
│ │ └── extensions.vim
│ ├── coc-settings.json
│ └── treesitter/
│ └── treesitter.vim
├── nvim-ojdk17/
│ ├── Dockerfile
│ └── config/
│ ├── coc/
│ │ └── extensions.vim
│ ├── coc-settings.json
│ └── treesitter/
│ └── treesitter.vim
├── nvim-python3/
│ ├── Dockerfile
│ ├── config/
│ │ ├── coc/
│ │ │ └── extensions.vim
│ │ ├── coc-settings.json
│ │ └── treesitter/
│ │ └── treesitter.vim
│ └── env/
│ └── requirements.txt
└── nvim-ts/
├── Dockerfile
└── config/
├── coc-settings.json
└── treesitter/
└── treesitter.vim
Condensed preview — 59 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (52K chars).
[
{
"path": ".gitignore",
"chars": 104,
"preview": "# Git ignore rules.\n#\n# @author Maciej Bedra\n\n### Docker ###\n# Test compose files\n**/docker-compose.yml\n"
},
{
"path": "LICENSE.md",
"chars": 1069,
"preview": "MIT License\n\nCopyright (c) 2020 Maciej Bedra\n\nPermission is hereby granted, free of charge, to any person obtaining a co"
},
{
"path": "Makefile",
"chars": 3578,
"preview": "# Makefile for Neovim IDE.\n#\n# @author Maciej Bedra\n\nnvim = mashmb/nvim:dev\nnvim-flutter = mashmb/nvim-flutter:dev\nnvim-"
},
{
"path": "README.md",
"chars": 8853,
"preview": "# Neovim IDE\n\nNeovim as IDE in Docker container. The idea is to create comfy programming environment for various languag"
},
{
"path": "nvim/Dockerfile",
"chars": 3129,
"preview": "# Docker file for base Neovim image.\n#\n# @author Maciej Bedra\n\n# Debian image as base (unstable for newest software).\nFR"
},
{
"path": "nvim/config/airline/airline.vim",
"chars": 997,
"preview": "\" Configuration for Airline status bar.\n\"\n\" @author Maciej Bedra\n\n\" Status bar theme\nlet g:airline_theme = 'minimalist'\n"
},
{
"path": "nvim/config/coc/coc.vim",
"chars": 2889,
"preview": "\" Conquer of completion configuration.\n\"\n\" @author Maciej Bedra\n\n\" Do not pass messages to ins-completion-menu\nset short"
},
{
"path": "nvim/config/coc/extensions.vim",
"chars": 298,
"preview": "\" Conquer of completion extensions.\n\"\n\" @author Maciej Bedra\n\n\" Globally available extensions\nlet g:coc_global_extension"
},
{
"path": "nvim/config/coc-settings.json",
"chars": 195,
"preview": "{\n \"coc.preferences.formatOnSaveFiletypes\": [\n \"css\",\n \"html\",\n \"javascript\",\n \"json\",\n \"sh\",\n \"sql\","
},
{
"path": "nvim/config/fzf/fzf.vim",
"chars": 376,
"preview": "\" Configuration for fuzzy finder.\n\"\n\" @author Maciej Bedra\n\n\" Search result on top\nlet $FZF_DEFAULT_OPTS = '--reverse'\n\n"
},
{
"path": "nvim/config/general/keys.vim",
"chars": 624,
"preview": "\" Key binding for Neovim out of the box.\n\"\n\" @author Maciej Bedra\n\n\" More handy insert mode exit\ninoremap jk <Esc>\ninore"
},
{
"path": "nvim/config/general/settings.vim",
"chars": 1661,
"preview": "\" General settings for Neovim out of the box.\n\"\n\" @author Maciej Bedra\n\n\" Set leader key\nlet g:mapleader = \"\\<Space>\"\n\n\""
},
{
"path": "nvim/config/git/fugitive.vim",
"chars": 472,
"preview": "\" Configuration for Git with Neovim integration.\n\"\n\" @author Maciej Bedra\n\n\" Key binding for Git status\nnmap <leader>gs "
},
{
"path": "nvim/config/git/fzf-checkout.vim",
"chars": 155,
"preview": "\" Configuration for Git branches fuzzy finder.\n\"\n\" @author Maciej Bedra\n\n\" Key binding use to run Git branches fuzzy fin"
},
{
"path": "nvim/config/gruvbox/gruvbox.vim",
"chars": 169,
"preview": "\" Configuration for Neovim Gruvbox theme.\n\"\n\" @author Maciej Bedra\n\n\" Use darker color scheme\nlet g:gruvbox_contrast_dar"
},
{
"path": "nvim/config/init.vim",
"chars": 1528,
"preview": "\" Neovim initialization file.\n\"\n\" @author Maciej Bedra\n\n\" Configuration for Neovim out of the box\nsource /root/.config/n"
},
{
"path": "nvim/config/nerdtree/nerdtree-git.vim",
"chars": 123,
"preview": "\" Git integration with files tree.\n\"\n\" @author Maciej Bedra\n\n\" Activate Nerd fonts\nlet g:NERDTreeGitStatusUseNerdFonts ="
},
{
"path": "nvim/config/nerdtree/nerdtree.vim",
"chars": 190,
"preview": "\" Configuration for files tree.\n\"\n\" @author Maciej Bedra\n\n\" Show hidden files by default\nlet NERDTreeShowHidden=1\n\n\" Key"
},
{
"path": "nvim/config/startify/startify.vim",
"chars": 393,
"preview": "\" Configuration for Neovim welcome screen.\n\"\n\" @author Maciej Bedra\n\n\" Welcome header\nlet g:startify_custom_header = [\n "
},
{
"path": "nvim/config/telescope/telescope.vim",
"chars": 1705,
"preview": "\" Telescope fuzzy finder configuration.\n\"\n\" @author Maciej Bedra\n\n\" Key binding used to launch fuzzy finder (file search"
},
{
"path": "nvim/config/treesitter/treesitter.vim",
"chars": 376,
"preview": "\" Code highlight configuration.\n\"\n\" @author Maciej Bedra\n\n\" Treesitter setup.\nlua << EOF\n require'nvim-treesitter.confi"
},
{
"path": "nvim/config/vimspector/vimspector.vim",
"chars": 149,
"preview": "\" Configuration for Neovim debugger.\n\"\n\" @author Maciej Bedra\n\n\" Enable HUMAN key bindings for debugging.\nlet g:vimspect"
},
{
"path": "nvim/home/.bashrc",
"chars": 856,
"preview": "# ~/.bashrc: executed by bash(1) for non-login shells.\n\n# Note: PS1 and umask are already set in /etc/profile. You shoul"
},
{
"path": "nvim-flutter/Dockerfile",
"chars": 710,
"preview": "# Docker file for Neovim Flutter development.\n#\n# @author Maciej Bedra\n\n# Base Neovim image.\nFROM mashmb/nvim:dev\n\n# Neo"
},
{
"path": "nvim-flutter/config/coc/extensions.vim",
"chars": 321,
"preview": "\" Conquer of completion extensions.\n\"\n\" @author Maciej Bedra\n\n\" Globally available extensions\nlet g:coc_global_extension"
},
{
"path": "nvim-flutter/config/coc-settings.json",
"chars": 207,
"preview": "{\n \"coc.preferences.formatOnSaveFiletypes\": [\n \"css\",\n \"dart\",\n \"html\",\n \"javascript\",\n \"json\",\n \"sh\""
},
{
"path": "nvim-flutter/config/treesitter/treesitter.vim",
"chars": 390,
"preview": "\" Code highlight configuration.\n\"\n\" @author Maciej Bedra\n\n\" Treesitter setup.\nlua << EOF\n require'nvim-treesitter.confi"
},
{
"path": "nvim-flutter/home/.bashrc",
"chars": 893,
"preview": "# ~/.bashrc: executed by bash(1) for non-login shells.\n\n# Note: PS1 and umask are already set in /etc/profile. You shoul"
},
{
"path": "nvim-go/Dockerfile",
"chars": 738,
"preview": "# Docker file for Neovim Go development.\n#\n# @author Maciej Bedra\n\n# Base Neovim image.\nFROM mashmb/nvim:dev\n\n# Neovim C"
},
{
"path": "nvim-go/config/coc/extensions.vim",
"chars": 316,
"preview": "\" Conquer of completion extensions.\n\"\n\" @author Maciej Bedra\n\n\" Globally available extensions\nlet g:coc_global_extension"
},
{
"path": "nvim-go/config/coc-settings.json",
"chars": 205,
"preview": "{\n \"coc.preferences.formatOnSaveFiletypes\": [\n \"css\",\n \"go\",\n \"html\",\n \"javascript\",\n \"json\",\n \"sh\",\n"
},
{
"path": "nvim-go/config/treesitter/treesitter.vim",
"chars": 388,
"preview": "\" Code highlight configuration.\n\"\n\" @author Maciej Bedra\n\n\" Treesitter setup.\nlua << EOF\n require'nvim-treesitter.confi"
},
{
"path": "nvim-jdk8/Dockerfile",
"chars": 1560,
"preview": "# Docker file for Neovim Oracle Java 8 development.\n#\n# @author Maciej Bedra\n\n# Base Neovim image.\nFROM mashmb/nvim:dev\n"
},
{
"path": "nvim-jdk8/config/coc/extensions.vim",
"chars": 337,
"preview": "\" Conquer of completion extensions.\n\"\n\" @author Maciej Bedra\n\n\" Globally available extensions\nlet g:coc_global_extension"
},
{
"path": "nvim-jdk8/config/coc-settings.json",
"chars": 309,
"preview": "{\n \"coc.preferences.formatOnSaveFiletypes\": [\n \"css\",\n \"html\",\n \"java\",\n \"javascript\",\n \"json\",\n \"sh\""
},
{
"path": "nvim-jdk8/config/treesitter/treesitter.vim",
"chars": 390,
"preview": "\" Code highlight configuration.\n\"\n\" @author Maciej Bedra\n\n\" Treesitter setup.\nlua << EOF\n require'nvim-treesitter.confi"
},
{
"path": "nvim-jdk8/home/.bashrc",
"chars": 933,
"preview": "# ~/.bashrc: executed by bash(1) for non-login shells.\n\n# Note: PS1 and umask are already set in /etc/profile. You shoul"
},
{
"path": "nvim-latex/Dockerfile",
"chars": 490,
"preview": "# Docker file for Neovim LaTeX editor.\n#\n# @author Maciej Bedra\n\n# Base Neovim image.\nFROM mashmb/nvim:dev\n\n# Install La"
},
{
"path": "nvim-latex/config/coc/extensions.vim",
"chars": 320,
"preview": "\" Conquer of completion extensions.\n\"\n\" @author Maciej Bedra\n\n\" Globally available extensions\nlet g:coc_global_extension"
},
{
"path": "nvim-latex/config/coc-settings.json",
"chars": 206,
"preview": "{\n \"coc.preferences.formatOnSaveFiletypes\": [\n \"css\",\n \"html\",\n \"javascript\",\n \"json\",\n \"sh\",\n \"sql\","
},
{
"path": "nvim-latex/config/treesitter/treesitter.vim",
"chars": 391,
"preview": "\" Code highlight configuration.\n\"\n\" @author Maciej Bedra\n\n\" Treesitter setup.\nlua << EOF\n require'nvim-treesitter.confi"
},
{
"path": "nvim-ojdk11/Dockerfile",
"chars": 537,
"preview": "# Docker file for Neovim Open JDK 11 (Java 11) development.\n#\n# @author Maciej Bedra\n\n# Base Neovim image.\nFROM mashmb/n"
},
{
"path": "nvim-ojdk11/config/coc/extensions.vim",
"chars": 337,
"preview": "\" Conquer of completion extensions.\n\"\n\" @author Maciej Bedra\n\n\" Globally available extensions\nlet g:coc_global_extension"
},
{
"path": "nvim-ojdk11/config/coc-settings.json",
"chars": 309,
"preview": "{\n \"coc.preferences.formatOnSaveFiletypes\": [\n \"css\",\n \"html\",\n \"java\",\n \"javascript\",\n \"json\",\n \"sh\""
},
{
"path": "nvim-ojdk11/config/treesitter/treesitter.vim",
"chars": 390,
"preview": "\" Code highlight configuration.\n\"\n\" @author Maciej Bedra\n\n\" Treesitter setup.\nlua << EOF\n require'nvim-treesitter.confi"
},
{
"path": "nvim-ojdk17/Dockerfile",
"chars": 537,
"preview": "# Docker file for Neovim Open JDK 17 (Java 17) development.\n#\n# @author Maciej Bedra\n\n# Base Neovim image.\nFROM mashmb/n"
},
{
"path": "nvim-ojdk17/config/coc/extensions.vim",
"chars": 337,
"preview": "\" Conquer of completion extensions.\n\"\n\" @author Maciej Bedra\n\n\" Globally available extensions\nlet g:coc_global_extension"
},
{
"path": "nvim-ojdk17/config/coc-settings.json",
"chars": 309,
"preview": "{\n \"coc.preferences.formatOnSaveFiletypes\": [\n \"css\",\n \"html\",\n \"java\",\n \"javascript\",\n \"json\",\n \"sh\""
},
{
"path": "nvim-ojdk17/config/treesitter/treesitter.vim",
"chars": 390,
"preview": "\" Code highlight configuration.\n\"\n\" @author Maciej Bedra\n\n\" Treesitter setup.\nlua << EOF\n require'nvim-treesitter.confi"
},
{
"path": "nvim-python3/Dockerfile",
"chars": 876,
"preview": "# Docker file for Neovim Python3 development.\n#\n# @author Maciej Bedra\n\n# Base Neovim image.\nFROM mashmb/nvim:dev\n\n# Neo"
},
{
"path": "nvim-python3/config/coc/extensions.vim",
"chars": 343,
"preview": "\" Conquer of completion extensions.\n\"\n\" @author Maciej Bedra\n\n\" Globally available extensions\nlet g:coc_global_extension"
},
{
"path": "nvim-python3/config/coc-settings.json",
"chars": 624,
"preview": "{\n \"coc.preferences.formatOnSaveFiletypes\": [\n \"css\",\n \"html\",\n \"javascript\",\n \"json\",\n \"python\",\n \"s"
},
{
"path": "nvim-python3/config/treesitter/treesitter.vim",
"chars": 392,
"preview": "\" Code highlight configuration.\n\"\n\" @author Maciej Bedra\n\n\" Treesitter setup.\nlua << EOF\n require'nvim-treesitter.confi"
},
{
"path": "nvim-python3/env/requirements.txt",
"chars": 344,
"preview": "appdirs==1.4.4\nastroid==2.4.2\nblack==20.8b1\nclick==7.1.2\nisort==5.6.4\njedi==0.17.2\njedi-language-server==0.21.0\nlazy-obj"
},
{
"path": "nvim-ts/Dockerfile",
"chars": 482,
"preview": "# Docker file for Neovim Typescript development.\n#\n# @author Maciej Bedra\n\n# Base Neovim image.\nFROM mashmb/nvim:dev\n\n# "
},
{
"path": "nvim-ts/config/coc-settings.json",
"chars": 213,
"preview": "{\n \"coc.preferences.formatOnSaveFiletypes\": [\n \"css\",\n \"html\",\n \"javascript\",\n \"json\",\n \"sh\",\n \"sql\","
},
{
"path": "nvim-ts/config/treesitter/treesitter.vim",
"chars": 396,
"preview": "\" Code highlight configuration.\n\"\n\" @author Maciej Bedra\n\n\" Treesitter setup.\nlua << EOF\n require'nvim-treesitter.confi"
}
]
// ... and 2 more files (download for full content)
About this extraction
This page contains the full source code of the MashMB/nvim-ide GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 59 files (44.7 KB), approximately 15.3k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.