The problem is that when we implement rightMouseDown: then we won’t receive menuForEvent:, but some OakControl subclasses (like OakTabBarView) may want to show a context menu.
This command would e.g. fail if the repository format is of a newer date (in which case the code expecting a result would do “out of bounds” access).
Rather than split on newline, split third element on colon, and then take second element of that result, we now parse the output into a map and look for the ‘URL’ key.
This is to make the tmProperties file more transparent (should the user wish to manually inspect it).
As the variable part in the settings is treated as a format string, we can use ‘\r’ and ‘\n’ for CR and LF respectively.
If we only provide key and value, we set the setting globally.
If we provide an additional file type, we set it for that file type and parent file types (i.e. “text” is parent of “text.plain”) plus globally. An exception is when we give an “attr” scope as file type (then we do not cascade upward).
If we provide a path / glob, we set it for that path / glob and, as file type we can provide NULL_STR to limit it to just that path / glob, the empty string ("") to also set it globally, or a file type (which is treated as above).
Previous solution didn’t handle soft wrapped lines.
This solution also scales better, as we no longer need to break up ranges and create an entry per selected line.
* Rewrote the Subversion SCM driver to use the svn executable
* Badges work just like Mercurial
* TM_SCM_BRANCH is set to the full repository URL for the working copy
See issue #273.
Used in tmProperties this is to target untitled files, files with unknown encoding, and similar, so unlike text or source scopes, we do not want to set the option broader than the exact scope.
Presently the new file type is not setup to use tmProperties as the way this is specified (in tmProperties) needs special-casing. Will likely change that.
This allows getting a variable from the global domain without any variable interpolation (for settings that use $variables or \escapes).
This is required to provide a UI for editing preferences values (here we want to edit the unexpanded value, and the version in the global domain).
All the settings are now taken exclusively from the property files, so no more user defaults. This means users will have to set their theme and font again.
Instead of storing things in user defaults we will store them in ~/Library/Application Support/TextMate/Global.tmProperties.
This just makes things a lot easier than having to mix NSUserDefaults with our .tm_properties files, especially since changing a setting in the UI should sometimes be global, sometimes be for the current file’s type, and sometimes just for the current document (e.g. spelling language).
These features are already available with the .tm_properties.
Drawing the border did not account for auxiliary views (presently used by incremental search). See issue #240.
It also did not properly layout the views when adding/removing such views, causing the border to disappear after having used incremental search.
A minor caveat is that if there are encoding or newline (folder specific) settings in effect for the chosen path, these trump what’s selected in the save dialog.
If we wish to solve this, the best would be to update the options (shown in the save panel) based on selected folder/filename (and the settings in effect for that).
This closes issue #163.
The reason for this is that we might be able to overwrite mate even if we do not have write access to the parent directory. This will avoid us having to prompt the user for an admin password (when updating mate).
It should be mentioned though that incase mate is not a regular file, we do need to remove it first, because if e.g. it is a symbolic link, our install would write to where the link points to.
Theme was no longer initialized by OakTextView, instead we relied on OakDocumentView to provide us with a theme, but if the user had no themes installed, it would never do so, leading to a crash when OTV uses a theme member function to obtain colors.
This closes issue #222.
This was (temporarily) disallowed by previous commit. We do however need to allow it in the last placeholder since that is used for chaining snippets. See issue #182.
If caret is at the first position of a place holder then we no longer look for tab expansions, should the user press tab.
This address the issue where a placeholder has optional content and the word to the left of this optional content is a tab trigger. Previously deleting the placeholder text and pressing tab would insert a new snippet, which would generally not be expected.
This closes issue #226.
It can happen that we register the same value transformer twice, e.g. if we register it in an initialize method (since these are not guaranteed to only be called once).
This isn’t a problem per se, but there is no reason to create the new instance.