Fast as FUCK nvim completion. SQLite, concurrent scheduler, hundreds of hours of optimization.

Overview

coq.nvim πŸ”

Named after the famous theorem prover

coq also means ιΈ‘ in franΓ§ais quΓ©bΓ©cois, and I guess πŸ₯–.

Fast as FUCK and loads of features.

Faster Than Lua

  • Native C in-memory B-trees

  • SQLite VM interrupts

  • Coroutine based incremental & interruptible scheduler

  • TCP-esque flow control

More details at the PERFORMANCE.md

Features

Note: Due to compression, reality is faster than gifs

Fast as fuck

  • Results on every keystroke

  • Throttling? Never heard of her

  • Real time performance statistics

  • Look at the gifs! The bottom few are the fastest when I didn't show down on purpose to show features.

Fuzzy Search

Error correction: cour -> colour_space, flgr -> flag_group, nasp -> Namespace

fuzz_search.img

Preview

  • Press key to view documentation in big buffer

  • Auto open preview on side with most space

  • Customizable location: n, s, w, e

  • Ubiquitous: Tags, LSP, Paths, Snippets

doc_popup.img

LSP

  • Incremental completion

  • Client-side caching

  • Multi-server completion (i.e. tailwind + cssls)

  • Header imports

lsp_imports.img

  • Snippet Support

lsp_snippets.img

Install the Nvim Official LSP integration

Requires 1 line of change to support LSP snippets

.setup() -- before lsp..setup(coq.lsp_ensure_capabilities()) -- after ">
local lsp = require "lspconfig"

lsp.<server>.setup(<stuff...>)                              -- before
lsp.<server>.setup(coq.lsp_ensure_capabilities(<stuff...>)) -- after

If you are using packer.nvim

.setup(require("coq")().lsp_ensure_capabilities()) end) ">
vim.schedule(function ()
  local lsp = require "lspconfig"
  require("packer").loader("coq_nvim coq.artifacts")
  lsp.<server>.setup(require("coq")().lsp_ensure_capabilities(<stuff...>))
end)

Snippets

snippet_norm.img

  • Linked regions

snippet_expand.img

The % statistic comes from compiling the 10,000 snippets

See FAQ to see limitations due to upstream bug

CTags

  • Incremental & automatic background compilation

  • Tag location & context

  • Non-blocking

ctags.img

Requires Universal CTags, NOT ctags

# MacOS
brew uninstall ctags           # bad
brew install   universal-ctags # good

# Ubuntu
apt remove  ctags              # bad
apt install universal-ctags    # good

Paths

  • Preview contents

  • Relative to both cwd and file path

paths.img

Buffers

  • Real time completion

  • Fast in files with thousands of lines

buffers.img

TreeSitter

  • Unicode ready

  • I don't have a picture, it's boring

Treesitter is still unstable in nvim0.5: slow and crash prone

The promise is that Treesitter will have real time parsing on every keystroke, but it's actually too slow on big files.

The Treesitter source only parses on Idle events due to unrealized performance promises.

Tmux

tmux.img

Tabnine

  • CPU preserving flow control

  • Auto download & install & update

tabnine.img

T9 is disabled by default, I might remove it, if they do not improve the CPU usage. Their own bug tracker.

Enable via: coq_settings.clients.tabnine.enabled=true

Statistics

:COQstats

statistics.img

Validating config parser

  • Prevents typos & type errors in your config

Here I make a type error on purpose inputting string instead of an integer.

conf_demo.img

Install

Needs python virtual env

apt install --yes -- python3-venv

Minimum version: python:3.8.2, nvim: 0.5, sqlite: recentish

Install the usual way, ie. VimPlug, Vundle, etc

" main one
Plug 'ms-jpq/coq_nvim', {'branch': 'coq'}
" 9000+ Snippets
Plug 'ms-jpq/coq.artifacts', {'branch': 'artifacts'}
-- packer
use { 'ms-jpq/coq_nvim', branch = 'coq'} -- main one
use { 'ms-jpq/coq.artifacts', branch= 'artifacts'} -- 9000+ Snippets

Documentation

To start coq

" the [-s, --shut-up] flag will remove the greeting message
:COQnow [--shut-up]

🌟 If required, it will ask you to run :COQdeps, please run it and do :COQnow again.

There is built-in help command

:COQhelp [--web] [topic]

FAQ

Default hotkeys?

Always:

key function
manual completion
edit snippet placeholder

When completion menu is open:

key function
move preview to bigger window
exit to normal
backspace
select completion
next result
prev result

When hovering over a result, entering any key [a-z] will select it

This is a vim thing, I have zero control over :(

Autostart COQ

let g:coq_settings = { 'auto_start': v:true } (or the lua way)

LSP too slow to show up on keystroke.

You have some options, each has its trade off:

  1. Increase the coq_settings.limits.completion_auto_timeout.

This will slow down feedback on every keystroke, as coq waits for LSP.

  1. Use the manual completion hotkey (default )

Annoying! And the manual completion also has a timeout coq_settings.limits.completion_manual_timeout.

Some LSP servers will still fail to respond within the default .66 seconds, in that case pressing multiple times might actually help some LSP servers catch up, depending on their implementation.

Missing Results

On keystroke only a max of coq_settings.match.max_results are shown.

Use manual completion hotkey to show all results.

Some LSP servers give inconsistent completions

This happens when certain LSP servers give you 1000s of unfiltered results in alphabetical order and you still have to respond in a few dozen milliseconds.

To eliminate a-z bias, coq does a random sort on the resultset and process and cache as many of them as possible within the performance window.

So if some results are not in the SQLite cache, and have yet to be processed, they will be missing. They might however still show up on later keystrokes.

Use the manual hotkey if you need to see everything.

Auto completion mess up snippet regions (the ones you can jump to)

This is an upstream nvim issue.

Theoretically I can work around this by writing my own nvim extmark reconciliator, or I can go and cuddle my puppy and let upstream fix it.

My vim crashed!

Disable TreeSitter

Treesitter still needs stability work.

I want to use a different python version

vim.g.python3_host_prog=

Note: ~/ will not be expanded to $HOME, use vim.env.HOME .. (lua) or $HOME . (viml) instead.

If you like this...

Also check out

  • sad, it's a modern sed that does previews with syntax highlighting, and lets you pick and choose which chunks to edit.

  • CHADTree, it's a FULLY featured file manager.

  • isomorphic-copy, it's a cross platform clipboard that is daemonless, and does not require third party support.

Special Thanks & Acknowledgements

The snippets are compiled from the following open source projects:

Super special thanks goes to Typescript LSP.

Nothing like good motivation to improve my design than dumping 1000 results on my client every other keystroke.

Comments
  • Path completion on windows

    Path completion on windows

    Could be possible to use path autocompletion with fordwardslash, "/", instead of just with backslash, "" on Windows? I know that paths on Dos and on Unix like systems behave differently, but I was wondering if this was possible. I have no idea how the plugin works internally, so I don't know if what I'm asking for may be stupid.

    Also, thank you, by the way. Your plugin runs fast as fuck on my 10 year old mini laptop and I really apreatte your effort for making that possible.

    opened by TheLeoP 27
  • Cursor position post completion using

    Cursor position post completion using "." and "("

    Expected When completing using . or ( we want to be in <inset-mode> one character to the right of the used completion key.

    Actual We end up being in <insert-mode> in front of the completion character (to the left).

    record

    opened by nymann 26
  • How to import coq

    How to import coq

    In the readme it shows following snippet.

    local lsp = require "lspconfig"
    
    lsp.<server>.setup(<stuff...>)                              -- before
    lsp.<server>.setup(coq.lsp_ensure_capabilities(<stuff...>)) -- after
    

    Apparently require('coq') is a function and what needs to be passed in to the function?

    opened by s1n7ax 26
  • Complete candidates popup is blinking too much.

    Complete candidates popup is blinking too much.

    The speed is very very very fast! One side effect is the candidates popup is blinking on every key stroke.

    The gif seems ok due to the compression...

    commatolines

    Any chance to avoid it?

    opened by AllenDang 24
  • Add completion to the text history(?) so that it can be redone with '.' (period)

    Add completion to the text history(?) so that it can be redone with '.' (period)

    When you've chosen an autocomplete from the dropdown, that selection should be saved as part of the text change.

    If I change the word created to delivered and after 2 characters of delivered, I select it from the dropdown, and then go to the next instance of created and press . , I'll get de added to the text.

    Cheers.

    opened by fakeharxy 20
  • Unique constraint failed: files.filename

    Unique constraint failed: files.filename

    After running COQnow i get this error. I'm running the latest version from the coq branch. I've tried reinstalling.

    UNIQUE constraint failed: files.filename
    Traceback (most recent call last):
      File "C:\Program Files\Neovim\share\nvim\plugged\coq_nvim\.vars\runtime\lib\site-packages\pynvim_pp\logging.py", line 31, in with_suppress
        yield None
      File "C:\Program Files\Neovim\share\nvim\plugged\coq_nvim\.vars\runtime\lib\site-packages\pynvim_pp\lib.py", line 43, in wrapper
        return await aw
      File "C:\Program Files\Neovim\share\nvim\plugged\coq_nvim\coq\clients\tags\worker.py", line 149, in _poll
        await self._misc.reconciliate(dead, new=new)
      File "C:\Program Files\Neovim\share\nvim\plugged\coq_nvim\coq\databases\tags\database.py", line 106, in reconciliate
        await run_in_executor(self._ex.submit, cont)
      File "C:\Program Files\Neovim\share\nvim\plugged\coq_nvim\.vars\runtime\lib\site-packages\std2\asyncio\_prelude.py", line 41, in run_in_executor
        return await loop.run_in_executor(None, cont)
      File "C:\Users\kirch\AppData\Local\Programs\Python\Python39\lib\concurrent\futures\thread.py", line 52, in run
        result = self.fn(*self.args, **self.kwargs)
      File "C:\Program Files\Neovim\share\nvim\plugged\coq_nvim\coq\shared\executor.py", line 33, in submit
        return cast(T, fut.result())
      File "C:\Users\kirch\AppData\Local\Programs\Python\Python39\lib\concurrent\futures\_base.py", line 445, in result
        return self.__get_result()
      File "C:\Users\kirch\AppData\Local\Programs\Python\Python39\lib\concurrent\futures\_base.py", line 390, in __get_result
        raise self._exception
      File "C:\Program Files\Neovim\share\nvim\plugged\coq_nvim\coq\shared\executor.py", line 24, in cont
        ret = f(*args, **kwargs)
      File "C:\Program Files\Neovim\share\nvim\plugged\coq_nvim\coq\databases\tags\database.py", line 103, in cont
        cursor.executemany(sql("insert", "file"), m1())
    sqlite3.IntegrityError: UNIQUE constraint failed: files.filename
    
    opened by Nis5l 19
  • some questions

    some questions

    Yes, It's fast. But I still have some questions:

    1. How to define user snippets?
    2. How to auto expand completion on tab?
    3. Relative path not starting with ./ can not trigger path completion. But <c-x><c-f> can. For example in home directory, type .config/ then <c-space> won't suggest paths.
    4. Path completion does not work well with upper case character. For example ./.config/b suggests ./.config/BaiduPCS-Go/, but ./.config/B does not.
    5. In python, <c-space> is needed when importing each package and the first two modules. For example from torch import abs, cuda. Can this be automaticly triggered.

    Thanks!

    opened by tkkcc 16
  • Integration with Vimtex

    Integration with Vimtex

    First of all, thanks for the work done on this beautiful project.

    I rely heavily on Vimtex for my academic writing and used it along Deoplete. Vimtex supports a lot of autocomplete plugins and has documentation for those, but coq is missing.

    Do you know of a way of integrating the autocompletion of Vimtex into coq ?

    Thank you !

    opened by krillin666 15
  • Svelte imports autocompletion suggestion

    Svelte imports autocompletion suggestion

    Suggestions for import paths in Svelte files are incorrect.

    I think it takes the reference of current working directory opened in Vim and puts it as reference for all nested files.

    For example: c ( some other directory not in scope ) a ( present working directory ) b file1 ( import something from '../' will open suggestions for c folder because it takes a as the point of reference )

    I hope I am correct about my thinking behind the error. From what I've seen it doesn't happen in regular typescript files.

    opened by 0xDjole 13
  • COQ EXITED -1, Windows

    COQ EXITED -1, Windows

    Hello,

    Following the recent commit I am now receiving "COQ EXITED -1" when starting coq.nvim on my Windows machine.

    I was recently affected by issue #521 (cannot import name 'open_unix_connection' from 'asyncio') and so downgraded coq to the previous version via packer like so:

    use({ 'ms-jpq/coq_nvim', commit = '84ec5faf2aaf49819e626f64dd94f4e71cf575bc' })

    After I saw that that issue was fixed I upgraded to the most recent version again. When installed I get the prompt to install dependencies, which complete successfully before informing me that I can now use COQnow to start coq. However, whenever I try to start it I receive "COQ EXITED -1" . If I downgrade to the older commit again using the above packer command and install dependencies it starts working again.

    Unfortunately I'm not too sure how to go about diagnosing this issue, hence raising the issue.

    Thank you for your time and effort on this plugin.

    opened by Balandino 12
  • Snippets not working properly on Windows since the snippets change

    Snippets not working properly on Windows since the snippets change

    I have updated the plugin to the latest version, and run :COQdeps on both my Windows desktop computer and my Ubuntu Laptop. In Ubuntu everything works as expected, but on Windows I found a problem: the snippets aren't being expanded.

    1. Open any file with snippets for that filetype (for example, my init.lua).
    2. Write a snippets to let coq autocomplete it (for example, if ).
    3. Select the snippet with .
    4. Press (or the equivalent key) to trigger the completion.

    The result is the autocompletion menu being closed and the message Marks added: [-- body] [condition] being printed, but the snippets doesn't expand.

    Notes:

    • As I said, this just happens on Windows, not on Ubuntu.
    • This doesn't happen if I select any other thing on the step 2 (keyword, text, function, etc), just with snippets.
    opened by TheLeoP 12
  • `UnicodeDecodeError` with lua_language_server

    `UnicodeDecodeError` with lua_language_server

    When using coq with the sumneko/lua_language_server, I've been experiencing crashes when I write = in insert mode.

    Traceback (most recent call last):
      File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
        return _run_code(code, main_globals, None,
      File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
        exec(code, run_globals)
      File "/home/phat_sumo/.local/share/nvim/site/pack/paqs/start/coq_nvim/coq/__main__.py",
    line 173, in <module>
        arun(main())
      File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
        return loop.run_until_complete(main)
      File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
        return future.result()
      File "/home/phat_sumo/.local/share/nvim/site/pack/paqs/start/coq_nvim/coq/__main__.py",
    line 171, in main
        await init(args.socket, ppid=args.ppid)
      File "/home/phat_sumo/.local/share/nvim/site/pack/paqs/start/coq_nvim/coq/client.py", li
    ne 70, in init
        async with conn(socket, default=_default) as client:
      File "/usr/lib/python3.10/contextlib.py", line 206, in __aexit__
        await anext(self.gen)
      File "/home/phat_sumo/.local/share/nvim/site/pack/paqs/start/coq_nvim/.vars/runtime/lib/
    python3.10/site-packages/pynvim_pp/nvim.py", line 249, in conn
        async with client(socket, default=default) as rpc:
      File "/usr/lib/python3.10/contextlib.py", line 206, in __aexit__
        await anext(self.gen)
      File "/home/phat_sumo/.local/share/nvim/site/pack/paqs/start/coq_nvim/.vars/runtime/lib/
    python3.10/site-packages/pynvim_pp/rpc.py", line 253, in client
        await conn
      File "/home/phat_sumo/.local/share/nvim/site/pack/paqs/start/coq_nvim/.vars/runtime/lib/
    python3.10/site-packages/pynvim_pp/rpc.py", line 143, in _connect
        await gather(rx(recv()), send())
      File "/home/phat_sumo/.local/share/nvim/site/pack/paqs/start/coq_nvim/.vars/runtime/lib/
    python3.10/site-packages/pynvim_pp/rpc.py", line 188, in rx
        async for frame in rx:
      File "/home/phat_sumo/.local/share/nvim/site/pack/paqs/start/coq_nvim/.vars/runtime/lib/
    python3.10/site-packages/pynvim_pp/rpc.py", line 140, in recv
        for frame in unpacker:
      File "msgpack/_unpacker.pyx", line 540, in msgpack._cmsgpack.Unpacker.__next__
      File "msgpack/_unpacker.pyx", line 463, in msgpack._cmsgpack.Unpacker._unpack
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 5: invalid start byte
    

    Relevant pieces of my conf:

    -- auto-start coq
    -- settings need to come before loading the plugin
    vim.g.coq_settings = {
    	auto_start = 'shut-up',
    	keymap = {
    		eval_snips = '<leader>j',
    	},
    	display = {
    		preview = {
    			border = border,
    		},
    		icons = {
    			mode = "none",
    		},
    	},
    }
    
    local lsp = require('lspconfig')
    local coq = require('coq')
    
    lsp['sumneko_lua'].setup(
    	coq.lsp_ensure_capabilities({
    		on_attach = on_attach,
    		flags = lsp_flags,
    		settings = {
    			Lua = {
    				runtime = {
    					-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
    					version = 'LuaJIT',
    				},
    				diagnostics = {
    					-- Get the language server to recognize the `vim` global
    					globals = { 'vim' },
    				},
    				workspace = {
    					-- Make the server aware of Neovim runtime files
    					library = vim.api.nvim_get_runtime_file("", true),
    					checkThirdParty = false,
    				},
    				-- Do not send telemetry data containing a randomized but unique identifier
    				telemetry = {
    					enable = false,
    				},
    			},
    		},
    	})
    )
    

    All it takes for me to reproduce this crash is having coq and nvim-lspconfig installed with config. When I try to modify my sumneko configuration (usually triggered on inserting =), I get the nasty stack trace from above. I've been stumped on this one for a bit. Any ideas about what might be causing it?

    opened by phat-sumo 1
  • completion of eclipse.jdt.ls LSP crashes

    completion of eclipse.jdt.ls LSP crashes

    The LSP works fine, treesitter too, also coq_nvim [TS] and [SNIP], but coq_nvim [LSP] stuck the popup opened and I can't to close or select.

    coq_nvim: latest and updated
    NVIM v0.8.1
    Build type: Release
    LuaJIT 2.1.0-beta3
    Compiled by linuxbrew@43b3775c8372
    jdtls-launcher v1.2.0
    equinox-launcher 1.6.400.v20210924-0641
    jdtls-core 1.19.0.202212191235
    lombok custom
    openjdk 19.0.1 2022-10-18
    OpenJDK Runtime Environment (build 19.0.1+10-21)
    OpenJDK 64-Bit Server VM (build 19.0.1+10-21, mixed mode, sharing)
    
    opened by realtica 1
  • Not enough values to unpack in tmux parse.py

    Not enough values to unpack in tmux parse.py

    I get this error when updating COQ. I run it in neovim: v0.8.0-dev-1185-geb4844b5e-dirty and also tmux: next-3.4

    Traceback (most recent call last):                                                                                                                                                                                                 
      File "/home/u009893/.local/share/nvim/site/pack/packer/start/coq-nvim/.vars/runtime/lib/python3.10/site-packages/pynvim_pp/logging.py", line 31, in suppress_and_log                                                             
        yield None                                                                                                                                                                                                                     
      File "/home/u009893/.local/share/nvim/site/pack/packer/start/coq-nvim/coq/clients/tmux/worker.py", line 39, in _poll                                                                                                             
        await self.periodical()                                                                                                                                                                                                        
      File "/home/u009893/.local/share/nvim/site/pack/packer/start/coq-nvim/coq/clients/tmux/worker.py", line 45, in periodical                                                                                                        
        current, panes = await snapshot(                                                                                                                                                                                               
      File "/home/u009893/.local/share/nvim/site/pack/packer/start/coq-nvim/coq/tmux/parse.py", line 107, in snapshot                                                                                                                  
        panes = await _panes(tmux, all_sessions=all_sessions)                                                                                                                                                                          
      File "/home/u009893/.local/share/nvim/site/pack/packer/start/coq-nvim/coq/tmux/parse.py", line 75, in _panes                                                                                                                     
        return tuple(cont())                                                                                                                                                                                                           
      File "/home/u009893/.local/share/nvim/site/pack/packer/start/coq-nvim/coq/tmux/parse.py", line 55, in cont                                                                                                                       
        (                                                                                                                                                                                                                              
    ValueError: not enough values to unpack (expected 7, got 1)
    

    When reverting to the dev branch i get the same error but it then expects 9 values to unpack.

    opened by EmilSodergren 1
  • Incorrect suggestion expansion

    Incorrect suggestion expansion

    Sometimes when accepting suggestions it expands into the wrong thing. Let's say I have a Vec in rust and want to call .into_iter() on it. When I start typing, the LSP correctly suggests it. Now when I accept the suggestion it does not expand it into .into_iter (which would be what I expect) but into .into_iter (as IntoIterator).

    suggestion

    expansion

    I'm using neovim 0.8 and this is my config:

    vim.g.coq_settings = {
      auto_start = "shut-up",
      display = {
        ghost_text = {
          enabled = true
        },
        pum = {
          source_context = { "(", ")" }
        }
      },
      keymap = {
        recommended = false,
        manual_complete = "<C-Space>",
        jump_to_mark = "<C-j>",
        pre_select = true
      }
    }
    
    local coq_ok, coq = pcall(require, "coq")
    if coq_ok then
      local autopairs_ok, autopairs = pcall(require, "nvim-autopairs")
      if autopairs_ok then
        vim.keymap.set("i", "<esc>", [[pumvisible() ? "<C-e><esc>" : "<esc>"]], { expr = true })
        vim.keymap.set("i", "<C-c>", [[pumvisible() ? "<C-e><C-c>" : "<C-c>"]], { expr = true })
        vim.keymap.set("i", "<Tab>", [[pumvisible() ? "<C-n>" : "<Tab>"]], { expr = true })
        vim.keymap.set("i", "<S-Tab>", [[pumvisible() ? "<C-p>" : "<bs>"]], { expr = true })
    
        vim.keymap.set("i", "<cr>", function()
          if vim.fn.pumvisible() ~= 0 then
            if vim.fn.complete_info({ "selected" }).selected ~= -1 then
              return autopairs.esc("<C-y>")
            else
              return autopairs.esc("<C-e>") .. autopairs.autopairs_cr()
            end
          else
            return autopairs.autopairs_cr()
          end
        end, { expr = true })
      else
        autopairs = {
          ["("] = ")",
          ["["] = "]",
          ["{"] = "}",
          ["\""] = "\"",
          ["'"] = "'",
          ["`"] = "`",
        }
    
        for k, v in pairs(autopairs) do
          vim.keymap.set("i", k, function()
            return k .. v .. "<Left>"
          end, { expr = true })
        end
      end
    end
    

    I tested it with and without nvim-autopairs installed. It doesn't seem to have any effect on the behavior. A full list of my plugins:

                    packer.nvim - Total plugins: 21
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     β€’ Comment.nvim
     β€’ LuaSnip
     β€’ catppuccin
     β€’ coq.artifacts
     β€’ coq.thirdparty
     β€’ coq_nvim
     β€’ feline.nvim
     β€’ gitsigns.nvim
     β€’ harpoon
     β€’ impatient.nvim
     β€’ mason.nvim
     β€’ null-ls.nvim
     β€’ nvim-lspconfig
     β€’ nvim-treesitter
     β€’ nvim-ts-autotag
     β€’ nvim-web-devicons
     β€’ packer.nvim
     β€’ playground
     β€’ plenary.nvim
     β€’ telescope.nvim
     β€’ vim-be-good
    
    opened by AlphaKeks 1
  • Not filling out template values

    Not filling out template values

    Im new to all this so if coq is not the issue just let me know.

    Ive setup python, java, and c++ language servers and I dont get any errors but none seem to work as advertised in the readme.

    Here is my config

    I have the following for the server configs

    export PATH="/home/mom/.local/share/java/language_servers/jdt-language-server-1.10.0-202203040350/bin:$PATH"
    export JDTLS_JVM_ARGS="-javaagent:$HOME/.local/share/java/lombok.jar"
    

    Ive got the python package for the c++ anakin-language-server and the pyright

    Despite all that the templates are not filled out with any relevant info for any of the languages, they all look something like this.

    Screenshot from 2022-11-29 23-52-37

    Thanks in advance!

    opened by MarkFuller1 0
  • remove python dependency

    remove python dependency

    I want to choose this but I ideologically don't think that an nvim plugin should rely on python. seems better than cmp except for this; (also the reason I'm moving away from COC except with nodejs)

    if you can find a way to replace the python dependency with lua it would be a more self-contained plugin

    opened by jam1015 0
Owner
i love my dog
dogs are love dogs are life
i love my dog
telescope.nvim is a highly extendable fuzzy finder over lists.

telescope.nvim is a highly extendable fuzzy finder over lists. Built on the latest awesome features from neovim core. Telescope is centered around modularity, allowing for easy customization.

nvim-telescope 8.4k Jan 5, 2023
Python CLI utility and library for manipulating SQLite databases

sqlite-utils Python CLI utility and library for manipulating SQLite databases. Some feature highlights Pipe JSON (or CSV or TSV) directly into a new S

Simon Willison 1.1k Jan 4, 2023
AthenaCLI is a CLI tool for AWS Athena service that can do auto-completion and syntax highlighting.

Introduction AthenaCLI is a command line interface (CLI) for the Athena service that can do auto-completion and syntax highlighting, and is a proud me

dbcli 192 Jan 7, 2023
Easily turn single threaded command line applications into a fast, multi-threaded application with CIDR and glob support.

Easily turn single threaded command line applications into a fast, multi-threaded application with CIDR and glob support.

Michael Skelton 1k Jan 7, 2023
Sink is a CLI tool that allows users to synchronize their local folders to their Google Drives. It is similar to the Git CLI and allows fast and reliable syncs with the drive.

Sink is a CLI synchronisation tool that enables a user to synchronise local system files and folders with their Google Drives. It follows a git C

Yash Thakre 16 May 29, 2022
Freaky fast fuzzy Denite/CtrlP matcher for vim/neovim

Freaky fast fuzzy Denite/CtrlP matcher for vim/neovim This is a matcher plugin for denite.nvim and CtrlP.

Raghu 113 Sep 29, 2022
🌈 Lightweight Python package that makes it easy and fast to print terminal messages in colors. 🌈

?? Colorist for Python ?? Lightweight Python package that makes it easy and fast to print terminal messages in colors. Prerequisites Python 3.9 or hig

Jakob Bagterp 1 Feb 5, 2022
Reproducible nvim completion framework benchmarks.

Nvim.Bench Reproducible nvim completion framework benchmarks. Runs inside Docker. Fair and balanced Methodology Note: for all "randomness", they are g

i love my dog 14 Nov 20, 2022
A task scheduler with task scheduling, timing and task completion time tracking functions

A task scheduler with task scheduling, timing and task completion time tracking functions. Could be helpful for time management in daily life.

ArthurLCW 0 Jan 15, 2022
Crud-python-sqlite: used to manage telephone contacts through python and sqlite

crud-python-sqlite This program is used to manage telephone contacts through python and sqlite. Dependencicas python3 sqlite3 Installation Clone the r

Luis NegrΓ³n 0 Jan 24, 2022
Google-drive-to-sqlite - Create a SQLite database containing metadata from Google Drive

google-drive-to-sqlite Create a SQLite database containing metadata from Google

Simon Willison 140 Dec 4, 2022
CLI for SQLite Databases with auto-completion and syntax highlighting

litecli Docs A command-line client for SQLite databases that has auto-completion and syntax highlighting. Installation If you already know how to inst

dbcli 1.8k Dec 31, 2022
Bingo game now in python play as much you want :) no need to give me credit it's open as fuck

Bingo-py-game A game coded with Python Introduction This is a Terminal-based game currently in its initial stage. I am working on adding more efficien

Frey 5 Aug 12, 2021
A tool to fuck a video/audio quality using FFmpeg

Media quality fucker A tool to fuck a video/audio quality using FFmpeg How to use Download the source Download Python Extract FFmpeg Put what you want

Maizena 8 Jan 25, 2022
Fuck - Multi Brute Force πŸšΆβ€β™‚

f-mbf Fuck - Multi Brute Force ??‍♂ Install Script $ pkg update && pkg upgrade $ pkg install python2 $ pkg install git $ pip2 install requests $ pip2

Yumasaa 1 Dec 3, 2021
An implementation of model parallel GPT-3-like models on GPUs, based on the DeepSpeed library. Designed to be able to train models in the hundreds of billions of parameters or larger.

GPT-NeoX An implementation of model parallel GPT-3-like models on GPUs, based on the DeepSpeed library. Designed to be able to train models in the hun

EleutherAI 3.1k Jan 8, 2023
Python Script to download hundreds of images from 'Google Images'. It is a ready-to-run code!

Google Images Download Python Script for 'searching' and 'downloading' hundreds of Google images to the local hard disk! Documentation Documentation H

Hardik Vasa 8.2k Jan 5, 2023
Rayvens makes it possible for data scientists to access hundreds of data services within Ray with little effort.

Rayvens augments Ray with events. With Rayvens, Ray applications can subscribe to event streams, process and produce events. Rayvens leverages Apache

CodeFlare 32 Dec 25, 2022
telescope.nvim is a highly extendable fuzzy finder over lists.

telescope.nvim is a highly extendable fuzzy finder over lists. Built on the latest awesome features from neovim core. Telescope is centered around modularity, allowing for easy customization.

nvim-telescope 8.4k Jan 5, 2023
Pyright extension for coc.nvim

coc-pyright Pyright extension for coc.nvim Install :CocInstall coc-pyright Note: Pyright may not work as expected if can't detect project root correct

Heyward Fann 1.1k Jan 2, 2023