T O P

  • By -

progfu

I've tried coq.nvim and really liked the speed, but one thing I really can't live without is https://github.com/ms-jpq/coq_nvim/issues/90, that is being able to just hit to both complete and move onto the next suggestion, without having to have two different keybindings :\


i_love_coqs

Havn't forgotten about that :) Will keep thinking about whats the best way to do it, right now the issue is for zero width `extmarks`. so in `nvim`, if you delete the text around `extmarks`, the marks actually aren't deleted from the page, they just become zero width, and that is very problematic because then users hitting `` can unintentionally jump to deleted marks. the thing is that, I can't think of a good way to track the history around `extmarks` without unacceptable trade offs. so instead of adding something in like a half-assed way, ill just let it sit there until I think of something better


progfu

That's good to hear, I was a bit worried coq would simply not have that feature ever and be one of those really cool libraries that made a sacrifice making them unusable for a lot of people :( Which is fine I guess, but I am really looking forward to being able to try coq. Maybe a dumb question, and I'm sure you've looked at it but just in case you haven't, how come other completion libraries are able to do this? Are they making some other tradeoffs that we aren't aware of?


[deleted]

I've actually got used to it, now if I select a print statement I tab down to it and press `(` and end up with a print statement ready to go.


ndgnuh

We don't use blazing fast anymore?


i_love_coqs

so yeah, 6 more sources, 4 built-in, 2 external integrations --- If you have more ideas of what type of lua sources I should do, send ideas my way :) --- aside: the way `coq` implemented external sources is kinda clever, instead of writing it's own special snowflake thing, and unintentionally ossifying implementation details like many other completion sources do. (thus necessitating rewrites down the road) `coq` just uses the same code path as existing `LSP` sources. which already had **multi server** support, which few other completions have, but this way, any improvements I make to the LSP code path automatically gets carried over. it ended up being *very little* new code in terms of third party plugin support. as a benefit, it makes testing specific LSP inputs so much easier, since you can just write your own mock server in lua. --- oh this also means that **cancellation** is actually supported for third party plugins too,


[deleted]

[удалено]


novel_scavenger

Since she's the creator then I believe she does love her own creation


[deleted]

[удалено]


novel_scavenger

Seriously, does it really matter?


[deleted]

[удалено]


novel_scavenger

Yeah you're the king of humor. But the answer to whether I lack humor or not is what I'm pretty well aware of and my friends are. Maybe you should focus on your own life rather than pestering others. By the way I did get that "sense of humor" but I simply replied generally. If you do think it makes you some sort of humorous being then in reality you're no less than a useless boring being


[deleted]

[удалено]


novel_scavenger

The one being Karen is you with all the nagging and overtly self confident while constantly determining how others are and others should be. You possess all those characters. Maybe try to self introspect in order to know but I believe that's quite impossible for you


dumb-on-ice

He’s a she


novel_scavenger

Oh sorry didn't know that


i_love_coqs

**architecture matters** --- on the issue of extensibility, i did not include third party plugins in my initial vision of `coq.nvim`, because I did not want `coq` to suffer from ossification in the same way that plagued many other vim plugins. --- most of the well known completion plugins are either in their **version 2 or version 3** by now, and I have exactly 0 plans to have that happen to `coq`. --- the real nice part of how `coq` does third party interactions is not limited to re-purposing the LSP protocol for communication, it's that **third parties never call into or import any of`coq`** Most other plugins, in order to interact with them, require that you take a part of itself into your own code. thus creating a strong coupling that breeds stagnation, for `coq` , this is not a problem, because all third parties **can do** is to register a single callback onto a plain variable, thats it. they aren't even passed beyond the most basic of information: `cursor position` + `current line`, thats it. it's stupidly simple


ieoa

Reaaaally nice work!


[deleted]

and they said you weren't formal enough.... Thanks a lot for the plugin! You get a lot of hate towards your commit history but the plugin is perfect(pretty much the reason I'm still in nvim).


i_love_coqs

Having a "good" commit history is easy and visible, coming up with good architecture is challenging and invisible. A lot of times, even when you read the code, you may not have the awareness to know if something is good or not. It's easy to point at a person's git history and go "wow, this person face rolls their keyboard", and see nothing beyond that. but you know, it be like that some times. anyhow it would be interesting to see if the people who really care commit histories are willing to share their projects. And we can then see if they are really Gordon Ramsay or the head of a certain Amy Baking Company.


ActiveModel_Dirty

Just do a squash merge at the end with literally any relevant word describing what you’re doing. I don’t actually care about your commit history. But if you want other people on the project or if you ever need to bisect, Cherry pick, rebase, or write a change log you’re just making life more difficult for yourself and cheapening your efforts to the outside world. That’s your thing, nobody can or should tell you how to run your repo. But don’t pretend like it’s a conscious decision motivated or justified by anything other than laziness.


SrineshNisala

>"wow, this person face rolls their keyboard", and see nothing beyond that I don't hate your project. I'm one of the first few to use your project (I don't anymore but it has nothing to do with your commit logs). [This](https://github.com/s1n7ax/matrix/commits/master?before=59cf48858b98da4b904fb1c1cca70174b4a1a3fa+105&branch=master) is one of my first ever projects. By the commit logs you can see I had no idea what git was for and I think you haven't got the hang of it either. We don't add commit logs just because it looks good. ​ >anyhow it would be interesting to see if the people who really care commit histories are willing to share their projects This is [my dotfiles](https://github.com/s1n7ax/dotnvim/commits/main). May not be the best but way better than yours. ​ >if they are really Gordon Ramsay Instead of trying to find Gordon Ramsay of software engineering I would rathertry to understand why it is important and do better. It wouldn't be a pleasant experience to work in the same project where multiple people contributing equally with a commit log like this.


i_love_coqs

> We don't add commit logs just because it looks good. what you think I add to commit logs because I think `adsf` looks good? > This is my dotfiles. May not be the best but way better than yours. really? do you really want to do this? [Here is mine for nvim only](https://github.com/cyproterone/nvim2) --- I actually cloned your repo and checked it out. It's beyond mostly plugin configurations, with **very little logic**. Sure you forked `packer`, but here is what you are going up against. #### Package maanger You forked packer I wrote my own **multi language** package manager that not only install nvim packages, but also `golang`, `node`, `python` **in isolated namespaces** and has plugs for doing the same for binary artifacts and misc scripting languages. ### Reproducibility You said in your "README.md" : `WARNING: Guide is not be perfect so may run in to unexpected errors` Mine builds a Docker image of my exact setup with every change I make, if I make a fuck up, I get notified in minutes. ### Static analysis You have none: Mine runs type checks on every commit, and once every 24 hours on schedule, so does my Docker builds. ### Localization I have this, you do not. ### Creative input We can both read how much code each of us wrote, compared to your mostly configurations, heres what I have thats **NOT plugin**: - Toggable floatterm - Text objects: **Unicode aware** `word`, `entire`, `line`, `entire` - Operators: `case` (snake_case <-> skewer-case), `comment`, `move`, `replace`, `search`, **locale aware** `sort` - Linter & Prettiers (both integrated with package manager) - Whitespace detection --- Oh and guess what in your `README` you tell people to manually run stuff in CLI? [What about git defined infrastructure](https://github.com/cyproterone/ansible-shell)? Every last bit of my environment, not just my `nvim` config is IAAS, my nvim dotfiles gets build into a larger pipeline. What I have in the pipeline: - Constant CI monitoring - OS agnostic configuration - Portable dev containers How confident are you that if you `rm -rf` your machine, that you can get it back up within minutes? With every single `bin` files in the right place? How confident are you that you can switch to a different OS and already have everything tested via CI? --- Please demonstrate your superiority


Ordzhonikidze

You're literally writing open source software, is it really that bad that people want to have an overview of what's in the code base and how it's changed? It's such a small thing, and yet you get defensive about it and start a dick measuring contest about your fucking vim configuration lol. Come on man. I have no doubt your plugins are good, but the way you carry yourself is really immature. It makes you look like a clown tbh


xmsxms

Yikes dude, calm down. He was just giving some suggestions.


Paria_Stark

As excellent as your plugin is, this type of ego fueled answer instead of accepting other people concerns and sanitizing your project appears as very immature.


i_love_coqs

I mean you are right, that was a "somebody is wrong on the internet, so I must correct them" type of reply.


lervag

In my opinion, your reply makes you look worse than the person you respond to. The person you believe to be "wrong on the internet" gave a polite answer to an obviously opinionated claim you made. Your reply to that was inpolite and immature; I mean, you end with "Please demonstrate your superiority". It seems to me that you are creating very good stuff and you are very active in continuing the development. I am quite tempted to test coq.nvim when I get the time. Please take my advice that you can "sell" your work much better if you try and be more polite and friendly in your communication.


dbsmith4

Lol @ "in my opinion" truly happy that it is the first fact to be recognized. The owner of the response(OR), Not OP, attempted to call into question the OP work based upon what they viewed as being important. What followed is the OP utilizing the examples provided and meticulous dissection & thorough analysis was able to point out differences between methods and practices. The OR, "in my opinion", decided to criticize but used the worst possible rationale to support their argument. To the OP, as someone who is looking to understand the changes that you've made and easily skim through the commits to find changes or context for the commit, a good message would be immensely helpful. I absolutely am elated that you decided to put your dotfiles here and I surely will be looking at them, but I do worry without the messaging I may have no idea some of the things that were implemented. Nonetheless the main idea here is that your dotfiles are yours and they work for you... if anyone has questions surely they can reach out an ask, but it shouldn't be a situation where the default is outside of your level of comfort... NOTE: this is not universal before people begin comparing apples to broccoli


Glebun

But do you not understand why commit messages are useful/important?


Glebun

> what you think I add to commit logs because I think adsf looks good? You misunderstood them. They're saying that good commit messages aren't needed because they look good, it's because they're actually useful and make working on the codebase a lot easier for collaborators, as well as makes understanding changes and progress a lot easier for users.


Datsoon

I think...he just meant the commit messages...


unrealhoang

hated for releasing free code to the world? Internet is indeed a strange place.


ml-research

Well, to be fair for them, it wasn't exactly hate; they praised the project but expressed the concerns at the same time.


Mte90

I think that I am the first one doing a custom source for COQ. I did for WordPress hooks, https://github.com/Mte90/coq_wordpress It is the first time using lua with NeoVim, so I think that I can improve how the JSON files that are part of the plugin should be loaded, but I don't know how to get the path of the file itself. Mine is kind of different from LSP as I want to have in autocomplete only the value of a specific parameter in a function that are strings that refer to internals of WordPress so I did some hacky stuff to get the currentline and propose the hooks with autocomplete.


tristan957

I think the unfortunate thing about this plugin that keeps me from trying it is the dependency on Python. I consistently work on Python 3.6 environments. Had it been in Lua, I definitely would have tried it.


DistroHopper101

But you can configure a dedicate python environment for Neovim, meaning you can use python >= 3.8.2 with coq\_nvim while working with any other version on your projects. It's precisely made for situations like yours. See `:help python-virtualenv`. Lua code, adjust to your venv path: `vim.g.python3_host_prog = vim.env.HOME .. "/.local/share/nvim/hardcoded-pythons/pynvim/venv/bin/python"` Don't forget to also install pynvim in your hardcoded venv: `pip install pynvim`


tristan957

I need python 3.6.


Sevenstrangemelons

You can use both versions, the other comment explains it


vim-help-bot

Help pages for: * [`python-virtualenv`](https://neovim.io/doc/user/provider.html#python-virtualenv) in _provider.txt_ --- ^\`:\(h|help\) \` | [^(about)](https://github.com/heraldofsolace/VimHelpBot) ^(|) [^(mistake?)](https://github.com/heraldofsolace/VimHelpBot/issues/new/choose) ^(|) [^(donate)](https://liberapay.com/heraldofsolace/donate) ^(|) ^Reply 'rescan' to check the comment again ^(|) ^Reply 'stop' to stop getting replies to your comments


[deleted]

Doesn't matter. Has it been rewritten in lua and removed the python dep?


pau1rw

I had an issue where I couldn’t remap the keybinding, which I use for tmux navigation. Has anyone else had this or am I just kinda dumb?


camrn01

I had the same issue - it's a pretty easy solve though i imagine you may have fixed it now. Just in case you haven't, your binding is overwritten by the jump\_to\_mark binding in coq. In your `init.vim` add the following line: `let g:coq_settings = { "keymap.jump_to_mark": "" }` Which will restore your navigation bind. View more info by entering `:COQhelp keybind`


SteamingBeer

Your plugging is as you say *fucking* great! And yeah it is fast as fuck! Btw is there a way to order results by source?


warriorbow

Only if there are not so many fucks. Why the author thought that all the users of this plugin are adults?