4 ms·
>Can you please list the other 90% of must have capabilities for day to day development ? - find definition - find usages - rename - extract method - detec
by simion314 6y ago
>Can you please list the other 90% of must have capabilities for day to day development ?
- find definition
- find usages
- rename
- extract method
- detect code duplication
- highlight unused symbols(vars or functions)
- understand frameworks and libraries
- can suggest useful transformation or code simplification
- Intellij can understand type documentation like JSDoc and PHPDoc and use it in completion and highlight errors if using the wrong type or object member
- smart spellchecking, spellchecking that understand when it is in a comment or if it is a symbol name
- good VCS support(diff, commit, push)
- good debugging support
- IDEs have by default a lot of linting and code analyzing tools setup, trying to go from Intellij to VS Code defaults is a big downgrade , maybe it could be partially fixed by installing many plugins but I personally want to pay for a good program made by professionals and keep them profitable(and not have JetBrains fail or get bought by Google or Microsoft)
- benley 6y ago> - find definition > - find usages > - rename Emacs has these covered, especially when using LSP modes > - extract method I don't know what this is, sorry > - detect code duplication > - highlight unused symbols(vars or functions) This is what linters and static analysis tools are for, and emacs integrates with them nicely via flycheck. > - understand frameworks and libraries not sure what this implies, sorry > - can suggest useful transformation or code simplification > - Intellij can understand type documentation like JSDoc and PHPDoc and use it in completion and highlight errors if using the wrong type or object member More static analysis tooling, doesn't need to be built-in to the IDE, just hooked in with something like flycheck. > - smart spellchecking, spellchecking that understand when it is in a comment or if it is a symbol name emacs can kinda do this via flyspell but it's not perfect. You're right, this is a good idea. > - good VCS support(diff, commit, push) magit! > - good debugging support I'm mostly clueless here, sorry. > - IDEs have by default a lot of linting and code analyzing tools setup, trying to go from Intellij to VS Code defaults is a big downgrade , maybe it could be partially fixed by installing many plugins but I personally want to pay for a good program made by professionals and keep them profitable(and not have JetBrains fail or get bought by Google or Microsoft) aye, there's the rub. I suppose the "I" in IDE is the real value: the package deal with all the linters and analysis tools already hooked in. Various LSP modes have made it vastly easier to reach feature parity with this stuff in emacs with minimal effort, but I also definitely understand why things like Intellij are desirable and useful.
- throwaway8941 6y ago>> - understand frameworks and libraries >not sure what this implies, sorry A couple of things off the top of my head: — list all HTTP endpoints in a Spring (or whatever) application, with their arguments, input and output format, possible error codes, etc. — DSL completion, as in this example (pay close attention, it's not SQL): https://www.jetbrains.com/idea/features/screenshots/16/why_injected_languages.png https://www.jetbrains.com/idea/features/screenshots/16/why_i... — an ability to quickly jump from an ORM model to its corresponding database table Stuff like that.
- oblio 6y agoIs Emacs multithreaded?
- zelly 6y agoNo, it's completely single threaded. There's basically a GIL stopping it from ever being multithreaded without a serious rewrite/redesign. For long-running blocking tasks you have to use external processes (or the new dynamic module API to write an extension in C with pthreads).
- brlewis 6y agoThen what's the section on "Threads" about in https://www.gnu.org/savannah-checkouts/gnu/emacs/news/NEWS.27.1 https://www.gnu.org/savannah-checkouts/gnu/emacs/news/NEWS.2... ? Threads * New variable 'main-thread' holds Emacs's main thread. This is handy in Lisp programs that run on a non-main thread and want to signal the main thread, e.g., when they encounter an error. * 'thread-join' now returns the result of the finished thread. * 'thread-signal' does not propagate errors to the main thread. Instead, error messages are just printed in the main thread. * 'thread-alive-p' is now obsolete, use 'thread-live-p' instead. * New command 'list-threads' shows Lisp threads. See the current list of live threads in a tabulated-list buffer which automatically updates. In the buffer, you can use 's q' or 's e' to signal a thread with quit or error respectively, or get a snapshot backtrace with 'b'.
- NateEag 6y agoFor debugging, dap-mode is the lsp-mode equivalent. The not a big debugger guy but I've heard great things around the Emacs community about it.