Sublime Text uses TextMate's syntax declaration files to support new languages, it has all its menus and keybindings generated from JSON files, and it can be scripted to add new features using Python. If Sublime Text doesn't support a desired language or feature, it's usually not long before someone implements it themselves - examples include the plugin package manager and the 'open in browser' command.
Ranked in these QuestionsQuestion Ranking
Pro Functionality can be easily extended
Sublime Text uses TextMate's syntax declaration files to support new languages, it has all its menus and keybindings generated from JSON files, and it can be scripted to add new features using Python.
If Sublime Text doesn't support a desired language or feature, it's usually not long before someone implements it themselves - examples include the plugin package manager and the 'open in browser' command.
Pro Comfortable to work with
Sublime Text has a minimap on the side that provides a top-down view of the file and keyboard shortcuts for most actions. It also supports a large number of languages and general text editing features out of the box.
When you start using Sublime Text, it doesn't drown you in keyboard shortcuts or non-intuitive use-concepts. However, high-level functionality can still be easily accessed when the need for it arises.
Sublime Text is very lightweight by default. Customization occurs on the fly thanks to Package Control.
Pro Multi-line select and editing
Multiple cursors and column selection allows for versatile ways of editing.
ctrl + d will select the current word and each time the command is repeated, it adds the next occurrence of the word to the selection.
ctrl + click or
middle-mouse click will place another cursor in the place that's clicked. Cursors can then be controlled together. This also permits selecting vertically.
ctrl + shift + l will place a cursor on every highlighted line.
Pro Consistent cross-platform
Sublime Text looks consistently the same across Windows, OS X, and Linux.
Pro Offers Command Palette
Command Palette allows for fuzzy searching all available settings, snippets, etc.
Pro Fully customizable
Sublime Text allows for all sorts of customization to help users change almost everything in the editor: Key Bindings, Menus, Snippets, Macros, Completions, and many more. Essentially, just about everything in Sublime Text is customizable with simple JSON files. This system gives the user flexibility as settings can be specified on a per-file type and per-project basis.
Pro IDE features without the cruft
Sublime Text, while being lighter-weight than an IDE, still supports many IDE features.
- Text from the current file is used to provide autocomplete.
- Project Support (folder browsing, scoped history, build-system declarations).
- Refactoring support is emulated through multi-select, project-wide find and replace, and regular expression search.
- Syntax-aware selection and GoTo for quickly jumping to locations in the project.
- Snippets and Macros.
- A Python console for everything else.
Pro Regex commands
Regex commands help describe a certain amount of text.
Pro Permits instant file switching
Open Goto Anything by pressing Ctrl or Command + P and by using fuzzy search you can look for a file in your project. The file will load even without pressing enter, so you can make sure you've found the correct file without committing.
Pro Easy to get started
All you need to do when starting up is to install a package manager and modify user configuration.
Pro Very fast
Sublime is quick to start and never slows down. The UI is always responsive and you know what is happening in the background.
Pro Distraction free editing mode
Distraction free editing takes over your screen and removes every UI element so you can focus on code.
Pro Has tons of plugins available
Pro Installable package manager
The package manager is a plugin and can be swapped with something else custom.
Pro Customizable keymapping
From menus to commands, assign key maps to almost anything.
Pro Projects support multiple folders and git repos
Pro Allows for Vim-style editing
Vintage mode is Vim-style editing that's already built into the text editor.
Pro Support for TextMate themes and window decoration themes
Sublime Text compatibility with Textmate bundles is good, but excludes commands, which are incompatible. In general, Sublime Text syntax definitions are compatible with Textmate language files (.tmLanguage extension).
Pro Portable settings
Settings are modular and can be shared.
Pro Haxe and OpenFL integration via plugin
Both of these programming interfaces are cross-platform, open source, and easy to use.
Pro Highly Theme-able
Create your own theme with online editor.
Pro Dynamic Build System
Choose from many build systems or craft your own.
A Sublime license can be bought but it can still be used for free. However, a pop-up appears when you save multiple times.
Pro Multiple languages are supported
Pro Direct server upload
Provides command line shortcut for server upload.
With lot of functionalities, where other editor even not think to provide.
Pro Intelligent code completion
PhpStorm has two types of autocompletion: structural completion and word expansion.
Structural autocompletion makes predictions based on its understanding of PHP, while the latter tries to predict the word currently being typed based on previously typed words. Word expansion also works in comments and docstrings and it's similar to vim's omnicompletion.
Both types of autocompletion work extremely well, have little to no problems and are quite fast even when loading suggestions on the go.
Pro Supports various PHP frameworks
Supports Symfony2 (including Twig and Doctrine), Yii frameworks, and Laravel.
Pro PHPDoc support
PHPDoc is a documentation generator. It allows automatically generating documentation from specifically formatted comments.
Pro Inspections of all kinds
Pro Database view
The database tab, while not perfect, provides all the tools you need for daily usage. You always have your DB overview on the side (you can hide it when not needed).
Pro Built-in debugger
Has built in support for Xdebug including remote debugging.
Pro Phar package recognition
Phar support allows running complete applications out of .phar files.
Pro Plugins allow futureproofing and customization
Active development work on plugins is always a plus, as it can extend the use of the IDE.
Pro Auto-sync with remote folders
It allows monitoring code and sync the files that need to be changed with a remote server. This works more efficiently than libnotify and faster than vagrant auto rsync.
Pro Integrated Git GUI support
Allows users to manage their repositories directly from the IDE with a GUI which lets you do all Git commands.
Pro Code Refactoring
Quickly rename classes, methods, and variables used across multiple files in the project.
Pro Zero latency typing
Type codes with pleasure. Delay of visual feedback on a computer display has an important effect on typist's behavior and satisfaction, as cited here.
Pro Templating support
Supports Twig and Laravel's Blade (among others). Technically the later is part of a framework which Phpstorm supports but I've seen IDEs (e.g. Netbeans) with Laravel support but no blade support so it does deserve a notable mention.
Pro It comes with Testing RESTful Web Services
Save time of building your own or integrating libraries for testing RESTful Web Services. PHPStorm enables you to test endpoints without leaving your workspace or disrupting your workflow . You can code your endpoints in one window and test it immediately from another window.
Pro Regular updates for fixes and new features
PhpStorm is clearly being developed continually, which gives confidence that it will be available for some time and is not abandonware.
Pro Lots of plugins
Lots of plugins from JetBrains and the community are available, from useful things like support for Docker, Vagrant, Angular, Vue.js and more useless (but fun) like a nyan cat progress bar.
Pro External command support
Ability to setup custom external commands, which is something inherited from eclipse and found lacking on netbeans.
Pro Has built-in console and SSH clients
This allows execution of needed commands without switching to other windows. It also keeps track of what's happening right in the IDE, which is especially good with Vagrant, because you can connect to a VM in a single click.
Pro Emmet integrated
Pro Integrated Vagrant support
It recognizes Vagrantfile and allows full control from the IDE.
Pro Task/Context functionality
Similar to Eclipse Mylyn: you can create tasks or retrieve them from your ticketing system, and each task keeps its own context (opened files, modifications, etc.).
Pro Responsive core developers
Pro Excellent search tools
Especially the "find in path" feature that displays both results and file preview!
Sublime Text protects and copyrights its code and is thus not the freedom-ware some would like it to be.
Although paying for something good is far from a Con, having the competition this editor has and still have to pay for it is definitely a Con.
Con No printing of files
Sublime Texts offers no way of printing the files it edits.
Con Interruption while work
"Purchasing" messages box interrupts while saving file.
Con Inadequate language support
Sublime Text offers poor support for Far-East languages in Linux.
Con Often crashes due to poor quality plugins
Some plugins are quite buggy, meaning that installing many can become quite a problem regarding stability.
Con Loading big files on Windows is slow
Here's a rough comparison: a 70 MB file takes about 2 seconds to load in Notepad++, whereas the same file in ST3 takes over 10 seconds to load.
Con Annoying whitespace management
All too often it does the wrong thing with indentation on otherwise blank lines.
Con No toolbar
Sublime Text is more focused on keyboard users, meaning it doesn't come with a tool bar. Even plugins can't toggle bookmarks using the mouse.
Con Not a full IDE
It does not necessarily function on a project level
Con Slow development
While development has yet to stop on Sublime Text, it is significantly slower than its competitors Atom, VSCode, and others.
Con Resource exhaustive
It often maxes out even 4 cores, not to mention several hundred MBs of RSS with a single small project opened.
Currently costs £78 but does not seem to offer much more than some free counterparts.
It is not free software (free as in freedom).
Con Slow performance
A very slow indexing, many memory leaks, large projects after some time will be very slow, opening large files like 10mb can even break IDE.
Con FTP Extremely Slow
FTP File transfer is extremely slow compared to filezilla or other ftp programs
Con Interface is cluttered
Con Sometimes buggy
Index gets corrupt which results in errors in syntax presentation, code validation and auto-completion. Version-control system sometimes stops working, occasionally freezes in big files