beaucoup de choses

This commit is contained in:
Frizzus 2024-10-11 11:24:10 +02:00
parent 4120893b8a
commit 72c54e68ad
6 changed files with 206 additions and 238 deletions

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2017 David Feng
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.

233
README.md
View File

@ -1,233 +0,0 @@
# kickstart.nvim
## Introduction
A starting point for Neovim that is:
* Small
* Single-file
* Completely Documented
**NOT** a Neovim distribution, but instead a starting point for your configuration.
## Installation
### Install Neovim
Kickstart.nvim targets *only* the latest
['stable'](https://github.com/neovim/neovim/releases/tag/stable) and latest
['nightly'](https://github.com/neovim/neovim/releases/tag/nightly) of Neovim.
If you are experiencing issues, please make sure you have the latest versions.
### Install External Dependencies
External Requirements:
- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`)
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation)
- Clipboard tool (xclip/xsel/win32yank or other depending on platform)
- A [Nerd Font](https://www.nerdfonts.com/): optional, provides various icons
- if you have it set `vim.g.have_nerd_font` in `init.lua` to true
- Language Setup:
- If you want to write Typescript, you need `npm`
- If you want to write Golang, you will need `go`
- etc.
> **NOTE**
> See [Install Recipes](#Install-Recipes) for additional Windows and Linux specific notes
> and quick install snippets
### Install Kickstart
> **NOTE**
> [Backup](#FAQ) your previous configuration (if any exists)
Neovim's configurations are located under the following paths, depending on your OS:
| OS | PATH |
| :- | :--- |
| Linux, MacOS | `$XDG_CONFIG_HOME/nvim`, `~/.config/nvim` |
| Windows (cmd)| `%localappdata%\nvim\` |
| Windows (powershell)| `$env:LOCALAPPDATA\nvim\` |
#### Recommended Step
[Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) this repo
so that you have your own copy that you can modify, then install by cloning the
fork to your machine using one of the commands below, depending on your OS.
> **NOTE**
> Your fork's url will be something like this:
> `https://github.com/<your_github_username>/kickstart.nvim.git`
You likely want to remove `lazy-lock.json` from your fork's `.gitignore` file
too - it's ignored in the kickstart repo to make maintenance easier, but it's
[recommmended to track it in version control](https://lazy.folke.io/usage/lockfile).
#### Clone kickstart.nvim
> **NOTE**
> If following the recommended step above (i.e., forking the repo), replace
> `nvim-lua` with `<your_github_username>` in the commands below
<details><summary> Linux and Mac </summary>
```sh
git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim
```
</details>
<details><summary> Windows </summary>
If you're using `cmd.exe`:
```
git clone https://github.com/nvim-lua/kickstart.nvim.git "%localappdata%\nvim"
```
If you're using `powershell.exe`
```
git clone https://github.com/nvim-lua/kickstart.nvim.git "${env:LOCALAPPDATA}\nvim"
```
</details>
### Post Installation
Start Neovim
```sh
nvim
```
That's it! Lazy will install all the plugins you have. Use `:Lazy` to view
current plugin status. Hit `q` to close the window.
Read through the `init.lua` file in your configuration folder for more
information about extending and exploring Neovim. That also includes
examples of adding popularly requested plugins.
### Getting Started
[The Only Video You Need to Get Started with Neovim](https://youtu.be/m8C0Cq9Uv9o)
### FAQ
* What should I do if I already have a pre-existing neovim configuration?
* You should back it up and then delete all associated files.
* This includes your existing init.lua and the neovim files in `~/.local`
which can be deleted with `rm -rf ~/.local/share/nvim/`
* Can I keep my existing configuration in parallel to kickstart?
* Yes! You can use [NVIM_APPNAME](https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME)`=nvim-NAME`
to maintain multiple configurations. For example, you can install the kickstart
configuration in `~/.config/nvim-kickstart` and create an alias:
```
alias nvim-kickstart='NVIM_APPNAME="nvim-kickstart" nvim'
```
When you run Neovim using `nvim-kickstart` alias it will use the alternative
config directory and the matching local directory
`~/.local/share/nvim-kickstart`. You can apply this approach to any Neovim
distribution that you would like to try out.
* What if I want to "uninstall" this configuration:
* See [lazy.nvim uninstall](https://lazy.folke.io/usage#-uninstalling) information
* Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files?
* The main purpose of kickstart is to serve as a teaching tool and a reference
configuration that someone can easily use to `git clone` as a basis for their own.
As you progress in learning Neovim and Lua, you might consider splitting `init.lua`
into smaller parts. A fork of kickstart that does this while maintaining the
same functionality is available here:
* [kickstart-modular.nvim](https://github.com/dam9000/kickstart-modular.nvim)
* Discussions on this topic can be found here:
* [Restructure the configuration](https://github.com/nvim-lua/kickstart.nvim/issues/218)
* [Reorganize init.lua into a multi-file setup](https://github.com/nvim-lua/kickstart.nvim/pull/473)
### Install Recipes
Below you can find OS specific install instructions for Neovim and dependencies.
After installing all the dependencies continue with the [Install Kickstart](#Install-Kickstart) step.
#### Windows Installation
<details><summary>Windows with Microsoft C++ Build Tools and CMake</summary>
Installation may require installing build tools and updating the run command for `telescope-fzf-native`
See `telescope-fzf-native` documentation for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation)
This requires:
- Install CMake and the Microsoft C++ Build Tools on Windows
```lua
{'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' }
```
</details>
<details><summary>Windows with gcc/make using chocolatey</summary>
Alternatively, one can install gcc and make which don't require changing the config,
the easiest way is to use choco:
1. install [chocolatey](https://chocolatey.org/install)
either follow the instructions on the page or use winget,
run in cmd as **admin**:
```
winget install --accept-source-agreements chocolatey.chocolatey
```
2. install all requirements using choco, exit previous cmd and
open a new one so that choco path is set, and run in cmd as **admin**:
```
choco install -y neovim git ripgrep wget fd unzip gzip mingw make
```
</details>
<details><summary>WSL (Windows Subsystem for Linux)</summary>
```
wsl --install
wsl
sudo add-apt-repository ppa:neovim-ppa/unstable -y
sudo apt update
sudo apt install make gcc ripgrep unzip git xclip neovim
```
</details>
#### Linux Install
<details><summary>Ubuntu Install Steps</summary>
```
sudo add-apt-repository ppa:neovim-ppa/unstable -y
sudo apt update
sudo apt install make gcc ripgrep unzip git xclip neovim
```
</details>
<details><summary>Debian Install Steps</summary>
```
sudo apt update
sudo apt install make gcc ripgrep unzip git xclip curl
# Now we install nvim
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz
sudo rm -rf /opt/nvim-linux64
sudo mkdir -p /opt/nvim-linux64
sudo chmod a+rX /opt/nvim-linux64
sudo tar -C /opt -xzf nvim-linux64.tar.gz
# make it available in /usr/local/bin, distro installs to /usr/bin
sudo ln -sf /opt/nvim-linux64/bin/nvim /usr/local/bin/
```
</details>
<details><summary>Fedora Install Steps</summary>
```
sudo dnf install -y gcc make git ripgrep fd-find unzip neovim
```
</details>
<details><summary>Arch Install Steps</summary>
```
sudo pacman -S --noconfirm --needed gcc make git ripgrep fd unzip neovim
```
</details>

1
ftdetect/red.vim Normal file
View File

@ -0,0 +1 @@
au BufNewFile,BufRead *.red set filetype=reds

1
ftdetect/reds.vim Normal file
View File

@ -0,0 +1 @@
au BufNewFile,BufRead *.reds set filetype=reds

View File

@ -157,6 +157,20 @@ vim.opt.cursorline = true
-- Minimal number of screen lines to keep above and below the cursor.
vim.opt.scrolloff = 10
-- custom settings
-- function Test()
-- print 'test'
-- end
-- vim.api.nvim_create_user_command('Test', Test(), {})
vim.cmd.colorscheme 'retrobox'
vim.cmd.set 'tabline=no'
vim.cmd.set 'nonumber'
vim.o.tabstop = 4
vim.o.shiftwidth = 4
vim.o.expandtab = true
--
-- [[ Basic Keymaps ]]
-- See `:help vim.keymap.set()`
@ -176,10 +190,10 @@ vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagn
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
-- TIP: Disable arrow keys in normal mode
-- vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
-- vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
-- vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
-- vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
-- Keybinds to make split navigation easier.
-- Use CTRL+<hjkl> to switch between windows
@ -835,7 +849,6 @@ require('lazy').setup({
-- Load the colorscheme here.
-- Like many other themes, this one has different styles, and you could load
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
vim.cmd.colorscheme 'tokyonight-night'
-- You can configure highlights by doing something like:
vim.cmd.hi 'Comment gui=none'

165
syntax/reds.vim Normal file
View File

@ -0,0 +1,165 @@
" Vim syntax file
" Language: Red/System
" Maintainer: David Feng <davidxifeng@gmail.com>
" Filenames: *.reds
" Last Change: 2017-09-03
" URL: https://github.com/DavidFeng/vim-red
"
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" Red/System is case insensitive
syn case ignore
setlocal iskeyword=@,48-57,?,!,.,',+,-,*,&,\|,=,_,~
syn keyword redsTodo contained TODO
" Comments
syn match redsComment ";.*$" contains=redsTodo
" Words
syn match redsWord "\a\k*"
syn match redsWordPath "[^[:space:]]/[^[:space]]"ms=s+1,me=e-1
" Booleans
syn keyword redsBoolean true false on off yes no
" Values
" Integers
syn match redsInteger "\<[+-]\=\d\+\('\d*\)*\>"
" Decimals
syn match redsFloat "[+-]\=\(\d\+\('\d*\)*\)\=[,.]\d*\(e[+-]\=\d\+\)\="
syn match redsFloat "[+-]\=\d\+\('\d*\)*\(e[+-]\=\d\+\)\="
" Time
syn match redsTime "[+-]\=\(\d\+\('\d*\)*\:\)\{1,2}\d\+\('\d*\)*\([.,]\d\+\)\=\([AP]M\)\=\>"
syn match redsTime "[+-]\=:\d\+\([.,]\d*\)\=\([AP]M\)\=\>"
" Strings
syn region redsString oneline start=+"+ skip=+^"+ end=+"+ contains=redsSpecialCharacter
syn region redsString start=+[^#]{+ end=+}+ skip=+{[^}]*}+ contains=redsSpecialCharacter
" Binary
syn region redsBinary start=+\d*#{+ end=+}+ contains=redsComment
" File
syn match redsFile "%\(\k\+/\)*\k\+[/]\=" contains=redsSpecialCharacter
syn region redsFile oneline start=+%"+ end=+"+ contains=redsSpecialCharacter
" Issues
syn match redsIssue "#\(\d\+-\)*\d\+"
" Tuples
syn match redsTuple "\(\d\+\.\)\{2,}"
" Characters
syn match redsSpecialCharacter contained "\^[^[:space:][]"
syn match redsSpecialCharacter contained "%\d\+"
" Operators
" Math operators
syn match redsMathOperator "\(\*\{1,2}\|+\|-\|/\{1,2}\)"
syn keyword redsMathFunction abs absolute add arccosine arcsine arctangent cosine
syn keyword redsMathFunction divide exp log-10 log-2 log-e max maximum min
syn keyword redsMathFunction minimum multiply negate power random remainder sine
syn keyword redsMathFunction square-root subtract tangent
" Binary operators
syn keyword redsBinaryOperator complement and or xor ~
" Logic operators
syn match redsLogicOperator "[<>=]=\="
syn match redsLogicOperator "<>"
syn keyword redsLogicOperator not
syn keyword redsLogicFunction all any
syn keyword redsLogicFunction head? tail?
syn keyword redsLogicFunction negative? positive? zero? even? odd?
syn keyword redsLogicFunction binary? block? char? date? decimal? email? empty?
syn keyword redsLogicFunction file? found? function? integer? issue? logic? money?
syn keyword redsLogicFunction native? none? object? paren? path? port? series?
syn keyword redsLogicFunction string? time? tuple? url? word?
syn keyword redsLogicFunction exists? input? same? value?
" Datatypes
syn keyword redsType binary! block! char! date! decimal! email! file!
syn keyword redsType function! integer! issue! logic! money! native!
syn keyword redsType none! object! paren! path! port! string! time!
syn keyword redsType tuple! url! word!
syn keyword redsTypeFunction type?
" Control statements
syn keyword redsStatement break catch exit halt reduce return shield
syn keyword redsConditional if else either
syn keyword redsRepeat for forall foreach forskip loop repeat while until do
" Series statements
syn keyword redsStatement change clear copy fifth find first format fourth free
syn keyword redsStatement func function head insert last match next parse past
syn keyword redsStatement pick remove second select skip sort tail third trim length?
" Context
syn keyword redsStatement alias bind use
" Object
syn keyword redsStatement import make make-object reds info?
" I/O statements
syn keyword redsStatement delete echo form format import input load mold prin
syn keyword redsStatement print probe read save secure send write
syn keyword redsOperator size? modified?
" Debug statement
syn keyword redsStatement help probe trace
" Misc statements
syn keyword redsStatement func function free
" Constants
syn keyword redsConstant none
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link redsTodo Todo
hi def link redsStatement Statement
hi def link redsLabel Label
hi def link redsConditional Conditional
hi def link redsRepeat Repeat
hi def link redsOperator Operator
hi def link redsLogicOperator redsOperator
hi def link redsLogicFunction redsLogicOperator
hi def link redsMathOperator redsOperator
hi def link redsMathFunction redsMathOperator
hi def link redsBinaryOperator redsOperator
hi def link redsBinaryFunction redsBinaryOperator
hi def link redsType Type
hi def link redsTypeFunction redsOperator
hi def link redsWord Identifier
hi def link redsWordPath redsWord
hi def link redsFunction Function
hi def link redsCharacter Character
hi def link redsSpecialCharacter SpecialChar
hi def link redsString String
hi def link redsNumber Number
hi def link redsInteger redsNumber
hi def link redsFloat redsNumber
hi def link redsTime redsNumber
hi def link redsBinary redsNumber
hi def link redsFile redsString
hi def link redsIssue redsNumber
hi def link redsTuple redsNumber
hi def link redsFloat Float
hi def link redsBoolean Boolean
hi def link redsConstant Constant
hi def link redsComment Comment
hi def link redsError Error
let b:current_syntax = "reds"