Code editor
a tool in which you simply write, modify source code
IDE - integrated development env
a tool in which along with having functionalities of a code editor, you also get an entire env for your dev, such as autocomplete, navigation, errors, integration w your pipeline, deployments etc
ex - Xcode, and how it archives and uploads to testflight for you. how it pulls your dev certificate, handles creating provisiong profile etc
basically, everything is handled withing the IDE software
via extensions with plugins, they can add additional features like formatters, linters etc
you can specify settings on a global/workspace(project) basis
webstorm
what a fkn beast
https://www.youtube.com/watch?v=1Fy_vSuPizE
Language server
a process/tool that runs in the background of your source code, that indexes your codebase, lets you find anything, navigate, find occurences due to the indexing, refactors easily. because of indexing you can do all this. also does static code analysis etc.
Language server protocol
a standardized protocol for ides to implement, enabling them to communicate/integrate langauge servers
the ide and ls work together to give you the experience
https://www.youtube.com/watch?v=wSdV1M7n4gQ
Eslint - popular static lint analysis
Prettier - popular opiniated code formatted.
these come as a node package, that offer a cli and formats your codebase, or from the plugin from your ide (not necessaryli, as I learnt in 2024. ex Webstorm requires you to install the prettier package yourself). if you’ve installed the package, your IDE/plugin will automatically use that and use the config file mentioned in your codebase. else, it’ll be the config file in your IDE.
debuggers
https://stackoverflow.com/questions/52368009/what-is-the-difference-between-step-in-step-out-and-step-over