Bugfix: directory renames were not propagated
Bugfix: renaming file "foo" should not affect file "foobar/baz" even though "foo" is a prefix of "foobar".
The language is now detected when constructing the document and when the underlying file is renamed. If the language changes, a languageChanged event is fired. Editors now determine their mode themselves by consulting the document's language and responding to languageChanged events. To save the editor state, editors are n longer closed and reopened when renaming a file. This brings back the problem with JSLint not opening when changing the extension to ".js".
Fix JSDoc syntax
Restore separation of commands that are just proxies for CM behavior vs. commands whose implementations actually live here (https://github.com/adobe/brackets/pull/2844/files#r3074809)
Fix typos in the comments
Reflect a change in a function's signature
Document the "extension" plugin for require.js
Document the contexts and entryPoints variables
Improve formatting
Removed JSLint's reference to CodeMirror in ExtensionUtils.js
Allow language IDs like foo_bar for package-style naming
Removed the require.js to allow extension dependencies. A better approach is to wait until a language is defined, rather than depending on a specific extension to define that language.
Renamed language/Languages.js to languages/LanguageManager.js
Added top-level documentation
Moved all mode-loading code to _setMode
Added promise modeReady
Added documentation for the mode parameter
Added a check to make sure that only MIME modes defined by the given mode are used
Changed the mode parameter to either take a string or an array of two strings - i.e. "mode" or ["mode", "mimeMode"]
Removed the require.js "mode" alias to the CodeMirror mode directory - it's enough that LanguageManager loads these modes and it might cause conflicts if a language extension decides to add a mode.js
Renamed cs to csharp
Check properly whether an object is a string and cite thine sources
User lower case file extensions
Better naming of variables
Removed language aliases because the special "html" case was actually artificially introduced by us via TokenUtils.getModeAt and can be removed once we use the language API in more places
Adjust the tests to reflect that EditorUtils is now gone