All Projects → jbyuki → dash.nvim

jbyuki / dash.nvim

Licence: MIT license
Script runner for quick iteration. Bring your scripting to the next level.

Programming Languages

lua
6591 projects
perl
6916 projects
Terra
27 projects
Raku
181 projects

Projects that are alternatives of or similar to dash.nvim

cargo-limit
Cargo with less noise: warnings are skipped until errors are fixed, Neovim integration, etc.
Stars: ✭ 105 (+183.78%)
Mutual labels:  nvim, runner
nvim
Structure, documented, super fast neovim configuration. 可能是翻斗花园最好用的 neovim 配置[^1]。
Stars: ✭ 223 (+502.7%)
Mutual labels:  nvim
QshOni
The QShell on IBM i library contains useful CL wrapper commands to allow QShell and PASE apps to be called and consumed from regular IBM i jobs via CL, RPG or COBOL programs.
Stars: ✭ 34 (-8.11%)
Mutual labels:  runner
impromptu.nvim
Create prompts fast and easy
Stars: ✭ 39 (+5.41%)
Mutual labels:  nvim
coc-discord-rpc
😎 An awesome and fully customizable coc-extension to get Discord Rich Presence integration with NeoVim.
Stars: ✭ 139 (+275.68%)
Mutual labels:  nvim
lsp-command
Command interface for neovim LSP
Stars: ✭ 48 (+29.73%)
Mutual labels:  nvim
taskrunner.nvim
🏃 Runs Gulp/Gruntfiles in terminal splits
Stars: ✭ 13 (-64.86%)
Mutual labels:  nvim
NVelox
Low level Neovim library.
Stars: ✭ 20 (-45.95%)
Mutual labels:  nvim
coc-java-debug
An extension for coc.nvim to enable Java debugging via jdt.ls
Stars: ✭ 92 (+148.65%)
Mutual labels:  nvim
PopRun
跑鸭:这是我的毕业设计,“跑鸭”微信小程序-一款基于校园跑步的社交小程序(实时里程配速、运动路径、整公里提醒、周榜月榜、打卡分享、热门推荐、线上活动、勋章墙、隐私设置),技术栈:Vant-Weapp UI、Laravel+MySQL
Stars: ✭ 64 (+72.97%)
Mutual labels:  runner
lsp spinner.nvim
neovim plugin to retrieve the name of the running LSP client(s) and display a spinner when there are wip job
Stars: ✭ 23 (-37.84%)
Mutual labels:  nvim
land
Run Deno X module without installation.
Stars: ✭ 39 (+5.41%)
Mutual labels:  runner
vscode.nvim
Neovim/Vim color scheme inspired by Dark+ and Light+ theme in Visual Studio Code
Stars: ✭ 362 (+878.38%)
Mutual labels:  nvim
await
28Kb, small memory footprint, single binary that run list of commands in parallel and waits for their termination
Stars: ✭ 73 (+97.3%)
Mutual labels:  runner
py lsp.nvim
Lsp Plugin for working with Python virtual environments
Stars: ✭ 58 (+56.76%)
Mutual labels:  nvim
qf helper.nvim
A collection of improvements for the quickfix buffer
Stars: ✭ 70 (+89.19%)
Mutual labels:  nvim
nvim-fennel-lsp-conjure-as-clojure-ide
Basic config to transform your NVIM in a powerful Clojure IDE using fennel, clojure-lsp and conjure.
Stars: ✭ 144 (+289.19%)
Mutual labels:  nvim
nvim-config
My neovim config
Stars: ✭ 63 (+70.27%)
Mutual labels:  nvim
modes.nvim
Prismatic line decorations for the adventurous vim user
Stars: ✭ 299 (+708.11%)
Mutual labels:  nvim
lvim
🧑‍🚀 Bloated LunarVim 🚀
Stars: ✭ 317 (+756.76%)
Mutual labels:  nvim

dash.nvim

A fast and safe script runner which outputs the result in a nicely formatted buffer.

This is still work-in-progress.

Supported

  • 🌱 : Supports but still unstable.
  • 🌳 : Stable.
Language Execute Visual Quickfix Debugger
Lua 🌱 🌱 🌱 🌱
Python 🌱 🌱
Fennel 🌱 🌱
nodejs 🌱 🌱
Vimscript 🌱 🌱
C++ / Visual Studio 🌱 🌱
Matlab
Kotlin, Java / Android 🌱 🌱
Latex 🌱
Go 🌱
GLSL / glslc 🌱
Bash 🌱

Can be used in conjunction with ntangle.nvim.

Visual: Execution of a visual selection

Remark: I'm still debating if the lua debugger belongs here. But for convenience, I won't do a separate plugin for now.

Features

Diff Output

A basic diff algorithm highlights all the newly inserted lines in the output buffer. This is useful to quickly see which lines changes compared to the previous execution.

Infinite Loop Guard

The execution is done completely is a sandboxed environnement. For lua, it spawns a new Neovim instance which will execute the script. The execution is done asynchronously and in case it prints infintely, little-runner.nvim will stop the execution after a certain number of lines has been reached.

This is an interesting workaround because executing a infinite loop through luafile will freeze the client normally. Lua plugins developer are most likely familar with it. Although little-runner.nvim sandboxed execution is interesting, it can't be applied to plugin development.

Fill Quickfix

You can navigate instantly to the error line.

Multi Language Support

It supports multiple languages out of the box. More support will be added as the plugin is evolving.

Debugger

Vimscript has some good debugging support but lua has only debug.debug() which is insufficient in my opinion. This still breaks often and lacks features but offers some support for debugging. It's a prototype for more to come.

Start the debugger with :DashDebug.

  • Place breakpoint: require"dash".toggle_breakpoint()
  • Step: require"dash".step()
  • Continue: require"dash".continue()
  • Inspect variable: require"dash".inspect()
  • Inspect variable (visual): require"dash".vinspect()

Remote execution

The execution can happen in a remote neovim instance. It uses the TCP port 7777 to connect to the remote process and invoke dash.nvim. For example, the host could be Windows and the remote WSL.

Start the executing neovim instance using:

nvim --headless --listen localhost:7777

In the host environnement, open nvim and connect to the remote instance with:

:DashConnect

All the execution will happen remotely on :DashRun.

Installation

Install using your favorite plugin manager. For example using vim-plug.

Plug 'jbyuki/dash.nvim'

Usage

:DashRun

Design

Guidelines which should guide the development of this plugin.

  • The plugin should be functionnal with minimal configuration

Help

  • If you encounter any problem, please don't hesitate to open an Issue.
  • All contributions are welcome.

Extra

For the curious out there: Try to copy-paste a brainf*ck program and execute it using DashRun. Set the filetype to bf using set ft=bf. Admire the computation done live in front of your eyes.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].