What IDE you use and where do yo learn

Hello community.
I am writing this text because I would like to evaluate the possibility of creating an IDE for polkadot that was a clone of the one I used when I used Windows and wrote in C. Then I used dev c++ and I was very satisfied with using the debugger, being able to use ‘whatchers’ and checkpoints. breaking off. This is a task that would be very difficult to undertake by myself and I would possibly abandon the development on the second or third day after starting, stuck in any intermediate step because that is what happens to me in most of the projects that I undertake and that I almost always leave abandoned due to to lack of motivation and means.
It would be wonderful for me to have an ide for rust oriented towards development in the polkadot ecosystem that I could do f5 to save, f6 to build and f7 to execute and that would have the possibility of executing step by step and being able to inspect each instruction. value and the type that the variables take and thus be able to modify and improve the code that we are building. It is likely that this tool already exists and someone can tell me the name so I can start using it.

There is also another proposal that I would like to evaluate. It would be a kind of academy from beginner to expert where those interested can quickly evaluate themselves and climb the ranks in the different areas of design and development and that makes it easier to abandon progress to dedicate themselves to other tasks and that easily allows progress to be resumed where you left it previously. It happens to me that I start following the manual at any point and I’m a day or two ahead. Then I spend two or three days doing other work and when I want to go back I don’t remember where I left off and what I have left until the end. The idea is a kind of one-click installer that would make an evaluation of the requirements by marking in green a list of what it will find in the system and highlighting in red the requirements that still have to be met, highlighting in yellow those that are desirable requirements or optional.
I suppose what I am asking is the million dollar question and that all or almost all of us will agree that it would be wonderful but not that easy.
Well, having said that, I’m waiting for your responses with your advice for using the IDE in Rust and the learning paths that you use.
Thank you very much for your attention and I hope that my post is helpful to the polkadot community and the entire crypto ecosystem in general.
Have a happy day.

If I had to guess most devs run either vscode+plugins, rustrover, zed, neovim+rust-analyzer or emacs. its very unlikely that if your IDE doesnt run as extensive plugin to any of those, you also wont see much adaption.
if its really just about having hotkeys for executing programs all of those editors are extensible that way and I guess some might already support those exact buttons you mention. personally i use neovim and just execute/build with package managers like cargo run/build.

there is following plugin that works straight at least in vscode ink-analyzer. i would recommend you go for vscode as your IDE that is the most beginner friendly for setting up all plugins etc. another option that a lot of rust developers love is rustrover that should come out pretty prepared.

on your second point about a structured learning platform, there are already several initiatives like DotCodeSchool(this matches your description quite well), Polkadot Blockchain Academy, Substrate Developer Hub, and various Rust learning resources that provide comprehensive educational materials. my own favourite is diving into polkadot is to explore the smoldot documentation, which is generated directly from source code comments and offers in-depth insights in clear structure manner.

2 Likes

@treebtc I build ink! analyzer and I would second what @hitchhooker advised above.
You’re better off extending existing IDEs/editors via plugins/extensions than building something from scratch (or forking and maintaining one) IMO.

ink! analyzer is (at the moment) focused on intelligent editing features for ink!, while you seem to be more interested in debugging features generally.
I’m working on an ink! analyzer equivalent for FRAME, some discussion here, but that will be focused on intelligent editing features as well (at least initially).

Under the hood, ink! analyzer implements Language Server Protocol (LSP) which allows the same low-level infrastructure (i.e. the semantic analyzer and language server) to be used with multiple IDEs (not just VS Code).

For debuggers, there’s a similar Debug Adapter Protocol (DAP), so I’d advise checking that out if there’s some domain specific feature that you can’t get from existing debuggers and debugger extensions (e.g. VS Code has an LLDB extension and IntelliJ IDEs support both LLDB and GDB).

@hitchhooker I’m curious if you use ink! analyzer with neovim.
I already ship some precompiled binaries for the language server, and the goal is generally to make it easy to use in other IDEs/editors that support LSP servers.

Is there anything else I can do to make it easier to use for neovim users?
Do you use mason or something similar?
Thanks in advance :slightly_smiling_face:

im running modified lazyvim to make nvim more IDE-like without spending more time in configuration than actual development. its built on lazy does includes out of box support for Mason making plugin management very effortless. I think that would be best way to gain adaption for ink-analyzer as well.

1 Like