-
Notifications
You must be signed in to change notification settings - Fork 198
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request: Add refactor functionality #436
Comments
Hi, thanks for the request. Indeed ElixirLS does not currently support refactoring/renaming, but if someone were to tackle it we'd be glad to help get it merged. (I renamed the title of your request to make it more obviously a feature request). |
Building the web one link at a time... I was directed here by this StackOverflow question. |
@axelson I'd love to see this feature as well as other refactoring capabilities. If you could point me in the right direction, I'd love to take a crack at this. I'm guessing refactoring commands would go in |
@garrettmichaelgeorge yes, you are on the right track. #521 is finishing up the implementation of ManipulatePipes which is the only thing that would fall under refactoring at this point. In the future we could add a |
Sorry I haven't had a chance to follow up on this yet. I know there's been a lot of (edit: exciting!) discussion lately about recent efforts like Rfx and Sourceror.
With those libraries tackling Elixir source code manipulation at a deeper level, I'm wondering if I should hold off on attempting something here and instead support their development. |
Hi, I would love to see this implemented. |
@lukaszsamson do you have any thoughts about it? Is it possible? :) |
any updates on it ? |
Hi all, if you'd like this to be built please just leave a 👍 on the issue itself. Comments asking for this to be implemented are not helpful and end up just making noise for the maintainers. If you're interested, please contribute to some of the tools that are operating in this space. Once one of them is stable and can handle all the edge cases for a given refactoring we can consider bringing it in. Here's some refactoring tools that I'm aware of that you can checkout, try, and submit PRs to: |
I'm definitely in favour of introducing refactor functionality. Let's divide it into separate and actionable items. "Add refactor" is simply not actionable |
@lukaszsamson any thoughts on what the separate items would be? I'm happy to create an issue for rename functionality if that is helpful? I've started trying to pick up from the POC here - Tuxified#1 (his original PR here - #676) |
Refactoring is not high on my priority list. I'd be happy if someone from the community was wiling to continue the work started by others in the experimental server |
If 'Add refactor' is not actionable, pls add feature requests that are, and ask the the community to pick that up, before you close this request. |
That's not how it works. How can the maintainers guess what exactly the community wants. There are already a few ones open e.g. #765, #676 #861 #803. If you have ideas pleas onen new issues/PRs. The progress on those has slowed down though since @scohen stopped contributting |
@lukaszsamson I'd like to talk to you about what's going on here, can we schedule some time on slack? |
Environment
Ubuntu 20.04
Elixir & Erlang versions (elixir --version):
Erlang/OTP 23 [erts-11.1] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]
Elixir 1.11.2 (compiled with Erlang/OTP 23)
Operating system:
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal
Editor or IDE name (e.g. Emacs/VSCode):
VSCode and neovim
Editor Plugin/LSP Client name:
neovim: elixir-editors/vim-elixir + https://github.com/elixir-lsp/coc-elixir
vscode: elixirLS 0.6.2
For other language servers I am used to the refactor/rename functionality, where I can rename functions/variables and the plugin will rename it smartly (other than find and replace).
I am missing that in elixirLS or I can not find it in the documentation. I have tried it in vscode and in (neo)vim.
The text was updated successfully, but these errors were encountered: