This is how to turn the text editor Atom into an Integrated Development Environment (IDE). Well, it's not that difficult since you just need to install a package.
Compared to creating other program development environments, there are fewer packages to install.
This is written by a Japanese who can't speak English with the help of translation application. Sorry if it's not good.
What is a development integration environment (IDE)?
An IDE is a text editor that provides the necessary functions for program development.
- Input Completion
- Definition jump
- Help functions
- Debuggers
- Compilers
In addition, some have Git operations, local servers, etc.
With all this, you can smoothly develop programs with a single text editor.
Atom also has an IDE package. This is a minimalist version of the IDE that was originally developed by Facebook.
The official Atom package.
atom-ide-ui(https://atom.io/packages/atom-ide-ui)
Good point
- All the functions necessary for program development are combined into one package, so there is no need to install packages one by one (No need to search for packages).
- The process of installing and configuring packages for any programming language is almost the same.
- You can start developing programs immediately.
- Suitable for beginners and people who are not particular about their development environment.
Bad points
- Internal linter is not compatible with WordPress.
- Sometimes there are more useful packages for each function.
- Packages with similar functionality may not be able to coexist; can't coexist with linter (it's a well-known package)
- When you want a better environment, you become dissatisfied.
- Not for people who want to create a development environment that fits their needs.
The atom-ide-ui is incomplete as an IDE by itself. It requires the installation of packages for each programming language.
It is distributed under the name 'ide-***'.
(*** is the name of the programming language)
In the package installation screen, search for "ide-" and you will find it, so you don't have to worry about it.
There are also frameworks such as Vue.js and packages such as React.js and Node.js.
Language Features
Busy Signal | Displays in the status bar (bottom part) when something is happening to the atom. (Not really necessary.) |
Code Actions | A diagnostic function for programs. If you are writing a program and make a mistake, you will get a message instantly telling you what is wrong. An error mark will be displayed at the left line. |
Code Format | Program formatting. Select a program and run it with the right- click menu to format it easily. |
Code Highlight | When you hover the cursor over a variable, function, or constant, other identical ones will be highlighted (to make them stand out). (Useful for misspelling variables, etc.) |
Console | A console that displays the results of program execution, etc. |
Datatips | Hover the mouse over a variable, function, or constant to see its description. ・Show explanatory comments for functions, classes, etc. ・For variables and constants, display the expression to which the value is assigned. ※ If you don't follow the rules for writing comments, they won't be displayed correctly. (javadoc for java) |
Definitions (plus Hyperclick) | Definition jump (Ctrl+click). Jump to where you are declaring variables, constants, functions, and classes. If the file is different, open the file. "What was this class?" You can check it immediately when you have a question. |
Diagnostics | Diagnostic function of the program. Displays the contents of the bug in the window below. Also shows the location of the bug. |
Find References | If you put the cursor on a variable, function, or class and execute it with the right-click menu, the window below will show you where it was declared and where it is being used. It is best to use this before jumping to the definition. Sometimes you can see so much of the content that you don't need to jump. |
Outline | A list of classes, functions, variables, etc. of the open file will be displayed on the right side. Clicking on it will jump to the place where it is defined. (definition jump in file) |
Signature Help (Experimental/WIP) | Input completion. When you enter a string, candidates for variables, functions, classes, etc. are instantly displayed so that you don't have to enter them all. It also prevents misspellings. |
This is all the basic functionality. In addition to this, there is a debugger and compiler, so there is not much else you need.
- If you are using an IDE, just install atom-ide-ui and ide-*** to start developing.
- The rest of the functions will be added when they are needed.
Programming language pack
The atom-IDE is not meant to be just atom-ide-ui. This is because this package is a collection of only common features that can be used in any programming language.
To use it with programming languages such as PHP, Java, Python, etc., you need to install the respective language pack.
- The name of the language pack is ide-***.
- There are official atom and community-developed third party products.
Atom Official Package
C# | Created based on Omnisharp |
Flow | Made by Facebook |
Java | Created based on Eclipse JDT |
JSON | Created based on the VSCode JSON language server |
TypeScript | Created based on TypeScript server You can also use the sister language JavaScript. |
You don't have a major language!
You may think this, but since it was originally made by Facebook, there is a bias. Let's forgive that with a smile.
But each of them is based on a tool that was originally widely used. There is no lack of functionality.
I like the fact that Java is based on Eclipse JDT.
Eclipse is an IDE created by IBM, and nothing beats it for Java development, and Eclipse JDT is its core package.
Community Package - Third Party
What is lacking in the official version is supplemented by third party products. They are introduced on the official website, so they are highly reliable.
Bash | A shell command adopted by Mac and Linux. |
Docker | The most popular OS virtualization technology, which creates a number of virtual PCs within a PC. |
Fortran | A well-established programming language used for more than 20 years in the field of science and technology. |
Haskell-hie | Used in mathematical and scientific technology. Good at parallel processing. I don't know much about it because it is mostly used in academic fields. |
PHP | PHP is a programming language so familiar to web developers that it is often referred to as the "PHP of the web. |
Powershell | A shell command that is also used in Windows. |
Python | One of the fastest growing and most popular programming languages in recent years. AI packages are abundant. It is also being used on the web, replacing PHP. |
Reason | I'm not sure. I heard it's used in other countries, but what about in Japan? |
Rust | same as above |
Scala | Since it can run in the Java execution environment, it is positioned as a programming language that makes Java easier to write and read. Java is also evolving and becoming simpler, so there is a point where people think, "Java is fine". |
Vue | Among the recent JavaScript frameworks, it is growing as fast as Anglar and React, and attracting attention. Vue.js It's like a Chinese version of Anglar. It is said to be simpler and easier to understand than Anglar. |
Huh? Some of you may be thinking.
Because the major languages are still missing: no C, C++, Swift, etc.? There are no Microsoft languages either.
Packs for the major languages can be found by searching for "ide-***" in the package installation.
Language packs for the atom-IDE are available for most programming languages from the official, officially recognized community, and other third parties.
Debugger Features
Basic functions of the debugger
The atom-IDE also has debugging features. As with the language packs, atom-IDE-ui contains only basic functions, so you need to install the package separately.
Launch/Attach UI | UI for launcher and attach. Debug launch settings. |
Breakpoints + conditional | Breakpoints. Mark where to stop the program by simply clicking on the left side of the source code. |
Stepping (Pause, Continue, Step, Restart) | Programs can be executed, paused, resumed, or stopped at the push of a button. |
Threads (Running, Focus) | Displays the status of a thread. Used for multi-threaded debugging; not necessary for single-threaded applications such as PHP. |
Stacktraces & in-memory source views | Stack trace. Memory state display. Displays which part of the file the program is executing. Displays the amount of memory used by the program. Used to investigate memory leaks, etc. |
Scopes & editable variables views | Displays the values of variables. There are also editing functions, such as adding variables you want to see. (If the debugging engine supports it.) |
Watch expressions | View the values of variables. You can also add variables, and change or delete values. It is similar to Scopes & editable variables views. |
Console + Repl | A console that displays the standard output of a program. |
Individual Debugger Packs
Node Debugger | Node.js debugger. Unofficial atom, made by facebook. |
Python Debugger | Python debugger. Unofficial atom, made by facebook. |
React Native Debugger | React debugger. Unofficial atom, made by facebook. |
C/C++ GDB Debugger | C/C++ debugger. Unofficial atom, made by facebook. |
OCaml Debugger | A debugger for the programming language ML. Unofficial atom, made by facebook. |
The individual debuggers are all made by facebook for now, and are not official for atom.
The color of facebook is amazing, and I guess these are the languages and frameworks that are being developed within facebook.
React is a JavaScript library developed by facebook. We will see more facebook colors in the future.
There is no debugger for Java. Thus, even major languages may not have dedicated debuggers.
As for Java, since the language pack is based on Eclipse JDT, the basic features may be enough for you.
Please try this once. If not, there are other debugger packages that you can use.
However, I'm not sure if it will work because of the compatibility with the atom-IDE.
Finally.
The atom-IDE has a lot of features, but the number of packages installed is small.
- atom-ide-ui
- Language packs for ide-***
- Debugger
- Use non-IDE packages for what's missing.
If you are a beginner in program development, the atom-IDE (+ debugger) will suffice since you will not be able to use the various functions.
There are many high-performance packages in atom, so I recommend it to those who find it difficult or troublesome to find them.
I would recommend the atom-IDE to anyone who wants to develop programs with atom.