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