Lesvim
Nvim config focus on Javascript, Typescript, Rust and Lua - ๐ ๐ช ( Fast and Powerfull ) - Deno and other typescript LSP working well together
Install / Use
/learn @MiaadTeam/LesvimQuality Score
Category
Development & EngineeringSupported Platforms
README
- About The Project
- Getting Started
- Recommendation Read this section for having best experience in this development environment
- Prerequisites
- Installation
- Usage
- Plugins Read this section to increase your mastery of this development environment
- Show your support
About The Project
We want to create an awesome Development Environment's so a big part of this document is not about Neovim, we briefly talk about the terminal emulator and prompt and other terminal tools, that make possible the whole Development Life live in Terminal.
<img width="1680" alt="Screen Shot 1400-08-18 at 19 05 55" src="https://user-images.githubusercontent.com/6236123/194859831-711b6d8c-ac49-4de3-8cfe-f89b5950c16c.png"> <img width="1680" alt="Screen Shot 1400-08-18 at 23 11 12" src="https://user-images.githubusercontent.com/6236123/140993424-525cf9d2-4530-4412-9f4b-44d29cfa9964.png">Getting Started
Recommendation
-
We highly recommend using
LinuxorMacas your operating system. -
Please install the nightly build of
Neovim, You need at least version0.8. -
Using
Weztermas your default Terminal emulator.It is a GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
It's my
wezterm.lua, you should put it in$HOME/.config/wezterm/wezterm.lua: -
Using
Fish SHELLas your default Shell.It is a user-friendly command-line shell.
It's my
config.fish, you should put it in$HOME/.config/fish/config.fish: please note that you should be installezazoxideandstarshipto avoid throwing error forfunctionsandinitcommand in the config file -
Using
starshipas your default Shell prompt.It is the minimal, blazing-fast, and infinitely customizable prompt for any shell!
It's my
starship.toml, you should put it in$HOME/.config/starship.toml -
Using
lazygitorGitUIfor interacting with GIT it's is:Simple terminal UI for git commands,
Blazing ๐ฅ fast terminal-UI for git written in rust ๐ฆ
It's my
GitUIVIM Likekeybinding, you should put it in$HOME/.config/gitui/key_bindings.ron -
Using
ezaas alscommand in the terminal:A modern replacement for โlsโ.
I personally set
llalias toeza --tree --level=2 -a --long --header --accessedwith this functions infishshell:function ll --wraps=ls --wraps=eza --description 'List contents of directory using eza tree' eza --tree --level=2 -a --long --header --accessed --git $argv end -
Using
zoxideas acdcommand in terminal:A smarter cd command. Supports all major shells.
-
Using
RipGrepas a replacement forgrep:ripgrep recursively searches directories for a regex pattern while respecting your gitignore
-
Using
Batas a replacement forcat:A cat(1) clone with wings.
-
Using
fdas a replacement forfind:A simple, fast, and user-friendly alternative to 'find'
-
Using
gnu-sedsed (stream editor) is a non-interactive command-line text editor:sed is commonly used to filter text, i.e., it takes text input, performs some operation (or set of operations) on it, and outputs the modified text. sed is typically used for extracting part of a file using pattern matching or substituting multiple occurrences of a string within a file.
MacOs: you need run
brew install gnu-sed
you can read a little bit more about the above utils in this article if you want.
Prerequisites
-
Install Rust
-
Install Node JS
-
Install Deno
-
Install Neovim
- please install the nightly version of Neovim and install LuaJit.
-
Install
Cascadia Code,Hack NerdandAdobe Arabicfonts -
Install Meslo Nerd Font patched
- Manual Meslo font installation:
- Download these four ttf files:
- Double-click on each file and click "Install". This will make
MesloLGS NFfont available to all applications on your system.
- Manual Meslo font installation:
-
If you decide to use the
luffywindlineconfig, installFira Code iCursive S12. -
Installing the Formatter
The major problem regarding the performance of IDE or IDE-Like is owing to the process of formatting documents. So we aim to speed up this process as much as possible.
We are trying to format documents with utils written in rust
RUST-
Install
dprintand set it to your$PATH(Pluggable and configurable code formatting platform written in Rust.) -
It's my
dprint.jsonfile, you should put it in$HOME/.config/dotfiles/dprint/dprint.json -
Install
styluaand set it to your$PATH(An opinionated Lua code formatter written in rust) -
It's my
stylua.tomlfile, you should put it in$HOME/.config/dotfiles/stylua.toml -
Install
prettierglobally:npm i -g prettier(Sorry for using this poorly performing package, however, we need it just for a few filetypes)
-
-
Install LSPs
DenoandRustLSPs are installed and attached to the relevant buffer when you execute thenvimcommand on your proper root project. if you want to usedenolspjust create adeno.jsonfile in the root of you project, and run thenvimcommand on the root working directory.-
For installing
tsserverLSP just run:npm install -g typescript typescript-language-server. You can read the rest of its doc here -
For installing
csslsLSP just run:npm i -g vscode-langservers-extracted. You can read the rest of its doc here -
For installing
emmet-lsLSP just run:npm install -g emmet-ls. You can read the rest of its doc here -
For installing
sumneko_luaLSP read this doc and this docbriefly i used this way for mac and linux:
- Install [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-N
-
Related Skills
bluebubbles
347.2kUse when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
himalaya
347.2kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
347.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
slack
347.2kUse when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
