Monday, July 18, 2016

Re: Use Case survey for C developers power tools plugin

Hi,

> Our startup is developing power tools for C developers that will be
> available as a Vim plugin.
>
> We plan to provide support for common refactorings (Rename, Extract
> Function, Extract Local, Change Message Signature, etc.,), automatic
> and smart code completion that is context-sensitive, quick fixes,
> etc.
>
> We have created an infrastructure to support many syntax-aware and
> semantics-aware features.
> We want to know from the C developers (and hopefully future consumers
> of our plugin) about features that you would love to have. This
> will help us make a better tool for the Vim+C developer community.

Discl.:
- I don't really care about C. However, I care a lot about C++.
- I've started years ago a generic refactoring suite built upon ctags poor understanding of C++.
https://github.com/LucHermitte/vim-refactor
- Regarding quickfix, I already have almost everything that I need (https://github.com/LucHermitte/vim-build-tools-wrapper)

Today, the main refactoring I miss is /function extraction/. I have a ersatz that doesn't work as well as I would like.
One of the main issue comes from ctags poor understanding of C++: it's quite difficult to list properly all local variables and types. I know I could do things correctly thanks to clang, but I don't really have the time to do it.
Note that it'll be quite important to be able to specify how out and in/out data are exchanged (reference parameter, returned values (tuples, struct...), attribute, and so on), and how arguments could be bound to parameters.

In all cases, I'd like the tool to respect the current project coding style (Note that I may open several windows/buffers with different coding styles. By /coding style/ I mean: naming policy (I may also have a naming policy for parameters and/or local variables), indentation, brackets placement, "const" placement (-> "T const&" VS "const T &"), ... I may also want the extraction to follow Almost Auto Policy if C++11 is detected.

Regarding smart code completion, we already have YouCompleteMe. My biggest issues with it are:
- It's quite difficult to have a configuration with is project specific.
- It doesn't support correctly code navigation (because code indexing is restricted to the current compilation unit) -- which isn't its main purpose, we have to admit.
- When its server crashes on a code base, it becomes completely impossible to use.


Good luck for your project,

--
Luc Hermitte

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments: