Contributions

See commits at GitHub.

Nov 2, 2016

  1. Specify line endings for ABNF grammars

    The current [RFC][] document that describes [ABNF][] specifies in
    section “2.2. Rule Form”, that ABNF grammars use CRLF (Carriage Return
    + Line Feed) as rule/line separator. We therefore set the default line
    ending for the scope `source.abnf` to `"\r\n"`.
    
    [ABNF]: https://en.wikipedia.org/wiki/Augmented_Backus–Naur_form
    [RFC]: https://tools.ietf.org/html/rfc5234
    
    René Schwaiger authored

Oct 30, 2016

  1. Fix broken mercurial link

    Gabriele Farina authored

Oct 28, 2016

  1. Use CFPropertyListWrite as CFPropertyListWriteToStream is deprecated

    mathbunnyru authored

Oct 21, 2016

  1. Use nullptr in all C++ files instead of NULL

    This brings us a bit of extra type safety, for example where an integer is expected, nullptr should be disallowed by the compiler (unlike NULL).
    
    mathbunnyru authored

Oct 19, 2016

  1. Changed from NULL to nullptr in variadic templates for portability

    mathbunnyru authored

Oct 18, 2016

  1. throw() → noexcept (C++11)

    Ronald Wampler authored
  2. Use oak::random_shuffle instead of std::random_shuffle

    The latter is deprecated in C++14 and will be removed in C++17
    
    Ronald Wampler authored
  3. Add oak::random_shuffle algorithm

    Ronald Wampler authored
  4. Add `random` header as a precompiled header

    Ronald Wampler authored

Oct 19, 2016

  1. Fixed memory leak

    mathbunnyru authored

Oct 18, 2016

  1. Slight perfomance improvements

    mathbunnyru authored

Oct 17, 2016

  1. Deleted unused variables

    mathbunnyru authored
  2. static_cast instead of c-style cast

    mathbunnyru authored
  3. Use std::string’s compare to avoid searching beyond the prefix length

    mathbunnyru authored

Oct 10, 2016

  1. Opt out of automatic window tabbing (10.12)

    Ronald Wampler authored

Sep 21, 2016

  1. Make OakPopOutAnimation window a child of the main window

    Jacob Bandes-Storch authored

Sep 13, 2016

  1. Let OakPopOutAnimation set the color in the image to black

    This makes the text easier to see against the yellow background.
    
    Ronald Wampler authored

Jun 20, 2016

  1. Use thread_local instead of our own implementation

    Apple's clang (Apple LLVM version 8.0.0 (clang-800.0.24.1)) as shipped with Xcode 8 now supports `thread_local`. This effectively reverts commits: 14c6a70 f3d1aba 9d1d1a1a and 172ce9d.
    

Sep 12, 2016

  1. Hide previous pop-out animations when showing a new one

    Jacob Bandes-Storch authored
  2. fixup! Only set table view’s row height during sizeToFit

    We need to set the row height after calling sizeToFit on textField.
    
    Ronald Wampler authored

Sep 11, 2016

  1. Tweaks to pop-out animation

    Jacob Bandes-Storch authored
  2. Minor visual tweaks to OakPasteboardSelector

    Jacob Bandes-Storch authored

Sep 10, 2016

  1. Update visual style of OakChooser matches

    Jacob Bandes-Storch authored
  2. Fix the Find window status bar font

    Jacob Bandes-Storch authored
  3. Highlight the selection again when it’s the only find result

    This more closely matches the behavior of NSTextView.
    
    Jacob Bandes-Storch authored
  4. Add “Check for Updates” to the app menu

    Another common practice among Mac apps.
    
    Jacob Bandes-Storch authored
  5. Use yellow background and underline for project find results

    This style is a de facto standard across a handful of popular Mac apps.
    
    Jacob Bandes-Storch authored

Sep 9, 2016

  1. Add “git config commit.gpgsign false” to SCM tests

    This allows tests to pass even when a global .gitconfig has gpgsign=true.
    

Sep 8, 2016

  1. Don't set our document with a default constructed document_ptr

    This was never necessary since our documentView will set this to
    document_ptr() when it's released, though it was harmless. But now,
    document_ptr is just a thin wrapper around OakDocument and the default
    constructor does nothing. As a result we were basically setting the
    text view OakDocument instance to nil.
    
    After commit f9e02d9, when the commit window closes, this would
    noticeably cause the text view to turn "white" when using a dark theme.
    
    Ronald Wampler authored

Sep 7, 2016

  1. Fix clipping during pop-out animation

Sep 4, 2016

  1. Add bundle editor menu item to copy item UUID

Sep 1, 2016

  1. Update link to Ninja

    Morton Fox authored

Aug 31, 2016

  1. Enable bundle editor window’s document icon

  2. Don't store our font scale factor as a percentage

    While we want to show the font scale factor as a percentage in the UI, internally, we should represent it as a CGFloat, which is more consistent with the NSFont APIs and makes interacting with them easier.
    
    Ronald Wampler authored

Aug 28, 2016

  1. Use Core Animation for find indicator

Aug 30, 2016

  1. Tail truncate strings in OakChoiceMenu

    This allows strings longer than our max width to still align up properly with the corresponding insertion text.
    
    Ronald Wampler authored
  2. Allow setting font for OakChoiceMenu to match our text view

    Ronald Wampler authored

Aug 16, 2016

  1. Add attr.project.swift scope

    This scope can be used to support the Swift Package Manager tools (e.g., `swift build`).
    
    Ronald Wampler authored

Jul 20, 2016

  1. Use weak storage for GutterView's partnerView

    On 10.12 beta 3, when closing a window, the following exception is thrown:
    
    Exception Name: NSInternalInconsistencyException
    Description: <GutterView 0x7fa71c511150> has reached dealloc but still has a super view. Super views strongly reference there children, so this is being over-released, or has been over-released in the past.
    
    Despite the mention of our GutterView instance being over-released, the actual problem is that we do not call super in our override of `removeFromSuperView`, where we nil out our partner view. A simple fix to avoid crashing would be just calling super in that method so that the view is marked as being removed; however, we can simplify the code and eliminate the need to override our super's method by using a weak reference instead and let ARC automatically handle the zeroing of our partner view.
    

Jul 13, 2016

  1. Manually release GCD objects in C++ libraries

    Since these are pure C++ libraries, they are not managed by ARC. This commit partially reverts 469fd74a7b6784c3eaec6618.
    

Jul 12, 2016

  1. Refactor ODBEditorSuite to avoid FSRef API (10.8)

Jul 6, 2016

  1. Use non-deprecated method to load nib (10.8)

    We can pass `NULL` to `topLevelObjects` since we have a strong IBOutlet to the NSPanel (our top-level object).
    

Jun 22, 2016

  1. Update deployment target to 10.8

  2. Save with Version 7.3.1 (7D1014)

Jun 20, 2016

  1. Pass our minimum deployment target to ibtool

    This suppresses the below warning when compiling xibs with Xcode 7 or later.
    
        warning: This file is set to build for a version older than the deployment target. Functionality may be limited. [9]
    
    We should revisit this when we update our minimum deployment target to 10.8 or higher, as it may not be needed.
    

Jun 18, 2016

  1. Rename "Go" menu to "File Browser"

  2. Move "Go To Related File" to the Navigate menu

  3. Move "Go to File" to File menu and rename to "Quick Open"

  4. Move "Go to Tab" to the Window menu and rename to "Select Tab"

    Also edit the source to reflect the change in name (e.g., `updateGoToMenu:` → `updateSelectTabMenu:`).
    
  5. Read the gutter fontName from user defaults

    defaults to textView fontName
    
    Mike Meyer authored

Apr 20, 2016

  1. Prefix some of the menu items in Navigate with "Jump to"

    The Navigate menu now contains a mixture of items with prefixes "Jump to", "Go to" or none at all. The "Go to" prefix is especially inconsistent since we have already have a dedicate "Go" item in the Main menu bar. For consistency, change them to use the "Jump to" prefix.
    
    The commit also renames the appropriate dialog boxes and updates some documentation to refer to the new names.
    
  2. Move "Jump to Selection" to the Navigate menu

    Most Apple applications have this item placed under Edit → Find; however, it fits more naturally in our Navigate menu.
    

Jun 14, 2016

  1. Explicitly link with libc++

    When building with Xcode 8 beta (on my system at least), clang produced the following warning:
    
    clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9
    
    It appears clang will link with libstdc++ if present by default instead of libc++. This was verified using `otool -L bundles.dylib` which produce the following output prior to this change.
    
    bundles.dylib:
    	@rpath/bundles.dylib (compatibility version 1.0.0, current version 1.0.1)
    	@rpath/OakSystem.dylib (compatibility version 1.0.0, current version 1.0.1)
    	@rpath/io.dylib (compatibility version 1.0.0, current version 1.0.1)
    	@rpath/plist.dylib (compatibility version 1.0.0, current version 1.0.1)
    	@rpath/regexp.dylib (compatibility version 1.0.0, current version 1.0.1)
    	@rpath/scope.dylib (compatibility version 1.0.0, current version 1.0.1)
    	@rpath/text.dylib (compatibility version 1.0.0, current version 1.0.1)
    	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
    	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 104.1.0)
    	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
    
    With this change the output is now:
    
    bundles.dylib:
    	@rpath/bundles.dylib (compatibility version 1.0.0, current version 1.0.1)
    	@rpath/OakSystem.dylib (compatibility version 1.0.0, current version 1.0.1)
    	@rpath/io.dylib (compatibility version 1.0.0, current version 1.0.1)
    	@rpath/plist.dylib (compatibility version 1.0.0, current version 1.0.1)
    	@rpath/regexp.dylib (compatibility version 1.0.0, current version 1.0.1)
    	@rpath/scope.dylib (compatibility version 1.0.0, current version 1.0.1)
    	@rpath/text.dylib (compatibility version 1.0.0, current version 1.0.1)
    	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
    	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
    
  2. Don't link network framework with crypto

  3. fixup! Ignore /usr/bin/git if /usr/bin/xcode-select -p fails

May 31, 2016

  1. Exclude given scopes when extending selection

    This introduces new scope setting - excludeFromParagraphSelection, that
    prevents extending selection to some scopes, eg. on comment.line.
    
    Previously when reformatting paragraph comment lines were selected as paragraph
    lines, this have led to mixing comment content into reformatted paragraph
    content breaking the syntax of reformatted code, eg.:
    
      some very long ... line of text
      # some comment
      some other long ... line of text
    
    As an effect we got:
    
      some very long ...
      ... text # some comment some other ...
      ... line of text
    
    The problem described above was especially visible when using ⌃Q to Reformat
    block of Git commit message, when below of the typed text there was a Git
    default comment. Also this problem could be noticeable by authors using LaTeX.
    
    This change checks whether a candidate line scope for paragraph extension has a
    excludeFromParagraphSelection set to true and breaks upon such line, eg.
    comment line.
    
    Doing Select Paragraph ⌃⌥P again will select the comment as well.
    

Apr 24, 2016

  1. Optionally draw a horizontal line for every tab stop

    This can be toggled using View → Show/Hide Indent Guides or controlled per file type via the `showIndentGuides` setting in `.tm_properties`.
    
    Josh Bernitt authored

Apr 27, 2016

  1. Add font size selection to print dialog

    Per Persson authored

Apr 10, 2016

  1. Add a horizontal 2px margin on the Folding closed indicator

    Orta Therox authored

Dec 30, 2015

  1. Double Click to Select Typing Pairs

    TextMate highlights certain character pairs (e.g. { }) when the caret passes over either of the characters. It can be useful to double click to select the text in between and including the character pairs for deleting code, copying code, for visually differentiating the affected code, etc. Add a select_unit_type, kSelectionExtendToWordOrTypingPair, to select the inclusive bounds of a typing pair if a match is found, or otherwise select a word as normal.
    
    This patch is free and released into the public domain.
    
    Brian T. Kelley authored

Feb 1, 2016

  1. Inactivate corresponding navigation menu items if no marks are present

    Ronald Wampler authored

Jan 29, 2016

  1. Add menu items to allow navigating to arbitrary marks

    Ronald Wampler authored

Feb 2, 2016

  1. CommitWindow: Force update of constraints after animation is completed

    This is necessary to prevent resizing of the document view when removing and then immediately adding a new constraint to the document view.
    
    Ronald Wampler authored

Jan 2, 2016

  1. Edit->Spelling->System using system language

    This sets '' (empty identifier) in Global.tmProperties that switches to system
    specified spelling language (usually Automatic by Default which is OS X
    default). It serves as a way back to the default when user picks any other
    language than default from the menu for current buffer (effectively for
    documents's directory).
    
    Adam Strzelecki authored
  2. Settings: Empty string should be serialized as ''

    Otherwise we get syntax error reading back the value from Global.tmProperties.
    
    Adam Strzelecki authored

Dec 28, 2015

  1. Use panel language unless spellingLanguage is specified

    This partially reverts changes of 3fdc72b93af0167e234c48314658d702f65a8a5f:
    Support spell checking being “automatic by language”.
    
    Before 3fdc72b spellingLanguage .tm_properties setting (default "en") was the
    only way to set spelling language for file (buffer). English was default
    language for all files. 3fdc72b introduced change that when “automatic by
    language” was selected in system's spelling panel then TextMate was ignoring
    spellingLanguage setting and was using automatic by language.
    
    However because “automatic by language” is default on OS X, effectively 3fdc72b
    makes spellingLanguage setting no longer effective. To make it work one needs
    to set explicit spelling language either in System Preferences or in spelling
    panel upon each TextMate run (since this is getting reset after application
    restart) - which is counter-intuitive, can be treated as regression and it is
    vaguely described in ChangeLog:
    
     * Support spell checking being “automatic by language”. This is set via the
       spelling panel.
    
    This change presents alternative approach, introducing new empty
    spellingLanguage setting "" (which is now default), which makes use system
    panel language setting, including “automatic by language”.
    
    From now on all files will be checked against system panel selected language
    (or automatic), unless .tm_properties project specifies explicitly language for
    given file using, eg.:
    
        [ locale-en_US.ini ]
        spellingLanguage = en_US
    
        [ locale-pl_PL.ini ]
        spellingLanguage = pl_PL
    
    Or automatically depending on file name:
    
        [ locale-*.ini ]
        spellingLanguage = '${TM_FILEPATH/^.*locale-([a-z]+_[A-Z]+).*$/$1/}'
    
    Adam Strzelecki authored

Jan 27, 2016

  1. Ensure path exists when adding document to Recent menu

    It's possible that the path on the document is set even though it does not exist on disk. E.g., when using `mate` to create a new document from the command line.
    
    Ronald Wampler authored
  2. Fix dictionary lookup crash when looking up an empty string

    It seems that the "showDefinitionForAttributedString:" can accept a nil argument, but not an empty string. The inserted test is preventing the call when the extracted string contains no characters.
    
    Vincent Bénony authored

Jan 4, 2016

  1. Build with Travis

    Martin Kühl authored
  2. Run tests synchronously by default

    Running tests in parallel (which is the default)
    results in spurious failures in the `scm` git tests,
    probably due to an undiagnosed race condition.
    
    This change lets tests run serially by default,
    but provides a flag `-p` (or `--parallel`)
    which enables running them in parallel again.
    
    It also adds a variable `test_flags`
    which is passed to each test run,
    and which can be set by running
    
        env test="-v" ./configure
    
    Martin Kühl authored
  3. Protect `gen_credits` against invalid responses

    The `gen_credits` scripts can spuriously fail
    raising this error in the `user_by_email` method
    
        NoMethodError: undefined method `[]' for nil:NilClass
    
    when `YAML.load(response.body)` returns nil.
    
    This change protects the build against these failures
    by returning nil early.
    
    Martin Kühl authored

Jan 15, 2016

  1. Add prototype for bug macro

    Compiling code that uses the `bug` macro
    while the `NDEBUG` symbol is defined
    (which it is by default)
    results in “expression result unused” warnings
    for each argument to the `bug` call.
    
    This change adds the parameter declaration
    from the debug version to the non-debug version,
    which silences these warnings.
    
    Martin Kühl authored

Oct 27, 2015

  1. Support "Amend" as button title in the commit window

    When the --amend flag is passed to the "commit" command, the commit
    window will used "Amend" instead of "Commit" as the title for the
    commit button.
    
    Jacob Carlborg authored

Oct 25, 2015

  1. Add support for commit and continue in the commit window

    The use case for this feature is when an interactive rebase is in
    progress and be able to, in one command, amend the current commit
    and continue with rebase.
    
    By default, if the --rebase-in-progress flag is passed when the
    "commit" command is invoked the commit button will be in a
    "commit and continue" state. This is indicated by the title of the
    commit button now being "Commit & Continue". If the option (⌥) key
    is being hold down the state will revert back to the standard "commit"
    state and the title will change to "Continue".
    
    If the butten was clicked when it was in the "commit and continue"
    state the "commit" command will print "TM_SCM_COMMIT_CONTINUE=1"
    (without the quotes) to stdout as the last line. If the button was
    clicked when it was in the standard "commit" state the output may
    contain "TM_SCM_COMMIT_CONTINUE=0", or the "TM_SCM_COMMIT_CONTINUE"
    string will be absent.
    
    Jacob Carlborg authored

Oct 14, 2015

  1. Revert "Disable unused-local-typedef warning for `sparsehash`"

    This reverts commit 2c6ad9b391a82e5334feb139eb53bea8b21e92b9.
    
    Upstream released a new version, which resolved the warnings this commit meant to suppress.
    
    Ronald Wampler authored

Oct 10, 2015

  1. Add project scope for Cargo (Rust) projects (attr.project.cargo)

    Michael Sheets authored

Oct 2, 2015

  1. Refresh when unfolding on mouse down event

    This seems to be necessary when the document occupies less space than the visible document window.
    
    Ronald Wampler authored

Oct 1, 2015

  1. Don't undefine/redefine "DEPRECATED" macro

    We no longer use Apple's headers for `openssl` so this isn't necessary.
    
    Ronald Wampler authored
  2. Require LibreSSL instead of relying on the system provided openssl

    Apple deprecated `openssl` in 10.7 and the headers are now removed in 10.11. Since we use some low level functions that are not provided in Apple's crypto frameworks, we now require are own version.
    
    Ronald Wampler authored

Sep 24, 2015

  1. Fix typo in 2015-09-16 (v2.0-beta.8) section of release notes

    Ram Nadella authored

Sep 19, 2015

  1. Directly convert the URL received from NSOpenPanel to a path

    We call `fileURL` here but the method doesn't actually exists (it's actually a property with the getter `isFileURL`). The URLs we obtain from NSOpenPanel are paths so it's probably safe to get the path without checking if it's a proper file URL.
    
    Ronald Wampler authored
  2. OFBOutlineView: Rename draggedItems → draggedOFBItems

    This property's name was conflicting with a private instance variable in our superclass (NSOutlineView) for the 10.11 SDK.
    
    Ronald Wampler authored
  3. Declare new protocols when building for 10.11

    These were informal protocols prior to 10.11.
    
    Ronald Wampler authored
  4. Explicitly cast back to the CGEventFlags typedef

    The SDK for 10.11 (Xcode 7 GM and Xcode 7.1 beta) declares this enum using CF_ENUM instead of CF_OPTIONS, which forces us to explicitly cast back to the typedef type. <rdar://22743357>
    
    Hopefully, we can revert this after OS 10.11 is officially released.
    
    Ronald Wampler authored

Aug 6, 2015

  1. Disable unused-local-typedef warning for `sparsehash`

    Also, disable unknown-pragmas warning for older version of clang.
    
  2. Move OakFlagState enum declaration out of method

    Also, changed the `newFlagState` property to use the enum type.
    
  3. Use our own lightweight wrapper for thread local storage

    With the boost thread helper we have to statically link to the boost libraries, which on most system is built against the latest version of the OS (instead of our current target 10.7). This doesn't seem to be an actual problem, but newer versions of clang issue warnings about it.
    
  4. Introduce tls_ptr_t

    This is a lightweight wrapper around the pthread methods to access thread local memory.
    

Apr 8, 2015

  1. Use dense_hash_map for style cache

Feb 27, 2015

  1. Update install instructions

  2. Setup Google's sparsehash library for use

Apr 8, 2015

  1. Add std::hash() implementation to scope_t

Apr 22, 2015

  1. Declare properties `needsNewWebView` and `webView` @dynamic

    This suppress a warning with the latest version of clang shipped with Xcode 6.3.
    
  2. Use std::abs instead of abs()

    This suppresses a couple of warnings with the latest version of clang shipped with Xcode 6.3.
    
  3. Replace `thread_local` with boost equivalent

    The new version of clang (Apple LLVM version 6.1.0) as shipped with Xcode 6.3, disabled TLS. According to http://clang.llvm.org/cxx_status.html, in order to support `thread_local`, the C++ runtime library from g++-4.8 or later is needed.
    
    For now, we can use the boost `thread_specific_ptr`. This is probably a reasonable solution since 1) it should be portable with old and future versions of (Apple's) clang and 2) requires no additional dependencies.
    

Apr 12, 2015

  1. Fixed fatal error in Applications/indent/indent.cc

    The static `std::map` instance (named just `map`, on line 79) had its initializer template params in the wrong order, which kept it from compiling. Swapping them as per this PR lets `indent` build and run with no issues.
    
    Alexander Böhn / FI$H2k authored

Apr 8, 2015

  1. Fix t_bump_date timezone

    Jason Gavris authored

Mar 31, 2015

  1. Moving a comma that seems misplaced

    Waynn Lue authored

Mar 28, 2015

  1. Add missing shadow to find/replace history pop-up list

    The NSComboBox, whose pop-up list has shadow, and so it will be nice for this similar control.
    
    Yuu Q authored

Mar 24, 2015

  1. Fix typo, delsyedPlaySound => delayedPlaySound

    Koen Punt authored

Mar 22, 2015

  1. Add NSOtherMouseUp to OakIsAlternateKeyOrMouseEvent

    To allow the alternate behavior (“close other”) when clicking a tab with the middle mouse button.
    
    Koen Punt authored
  2. Allow closing tabs on “other” (middle) mouse button

    Koen Punt authored

Feb 27, 2015

  1. Fix dull file browser labels on Yosemite

    Using NSTextFieldCell instead default NSCell together with
    NSTableViewSelectionHighlightStyleSourceList on Yosemite causes cells get light
    gray color, making the whole list dull and unreadable. Workaround that setting
    cell's `textColor` to `[NSColor textColor]`.
    
    Adam Strzelecki authored
  2. Remove browser header shadow & bold on Yosemite

    This applies to tabs above document case.
    
    Adam Strzelecki authored
  3. Use black text color selected tab on Yosemite

    This is more inline with Safar, Xcode & Terminal look on Yosemite.
    
    Adam Strzelecki authored

Feb 7, 2015

  1. fixup! Use `_externalScopeAttributes` as a fallback to export TM_SCM_NAME

    Added a const reference to avoid the unnecessary copies when using `auto` in range-based for loops. One can find other instances in the code base where we could probably avoid making copies in similar situations, but I did not want to create the patch noise. The intention here is just to correct the obvious mistake and avoid repeating it in the future.
    
    Ronald Wampler authored

Jan 30, 2015

  1. Make `OakTabBarStyle` properties readonly

    We do not modify these properties after initialization. Furthermore, where we do access them, we mark them as `const`.
    
    Ronald Wampler authored
  2. Mark local variable as const

    Ronald Wampler authored
  3. Explicitly set the value for the left and right padding

    While these properties are initialized to zero upon `alloc`, I think it makes the code easier to follow to explicitly set `leftPadding` and `rightPadding` to zero (if zero is desired) since the reader does not have to look around to ensure they aren't being set elsewhere.
    
    Ronald Wampler authored

Dec 25, 2014

  1. Allow opening favorites at startup and re-activation

    This is enabled via the ‘showFavoritesInsteadOfUntitled’ defaults key.
    
    Anton authored

Dec 5, 2014

  1. Let user know if scm is disabled

    Currently, if the scm disable, we would show it as "Unversion". For clarity let's status that it's disabled.
    
    Ronald Wampler authored
  2. Make `scm_enabled_for_path` API public

    Ronald Wampler authored

Dec 8, 2014

  1. Use `_externalScopeAttributes` as a fallback to export TM_SCM_NAME

    We set the attribute scopes `attr.scm.*` in two different places in DocumentController; however, we only export TM_SCM_NAME if the scm variables are present. So if `scmStatus` is not enabled, TM_SCM_NAME is never set or exported, but `attr.scm.*` can still be present.
    
    Ronald Wampler authored
  2. Do not export TM_SCM_BRANCH

    We original exported this for the commit window, which no longer uses it.
    
    Ronald Wampler authored

Nov 26, 2014

  1. Reorder accessibility order of chooser cell view items

    When VoiceOver users want to efficiently find an item in a list, they often go
    through the items quickly, hearing just first few characters to decide whether
    it is the item they want or whether it is positively not the one (in which case
    they move to the next item). Therefore it is necessary for each row (item) of a
    table to be worded in such a way for VoiceOver so that the most important piece
    of information is read first, then followed by the less important piece of
    information, etc.
    
    E.g. for the file chooser, the most important piece of information about a file
    is its file name. So we put that first for the VoiceOver user. If they are
    unsure whether it is the right one (perhaps because there is more than one file
    with the same name in different directories), then path to the file is read
    after that.
    
    Fixes textmate/bugs#10
    
    Boris Dušek authored
  2. Track close button in a property of file cell view

    Boris Dušek authored

Nov 24, 2014

  1. Update mate usage information for setting marks

    Ronald Wampler authored
  2. Fix typo in local variable name

    Ronald Wampler authored
  3. Improve error popover appearance

    Unfortunately, the text field is difficult to center properly (right/left arrow mode) since prior to 10.10 the popover's contents was set at inset (2, 2, 2, 2).
    
    Ronald Wampler authored

Nov 15, 2014

  1. Use template icon for .twig files

    Michael Sheets authored

Nov 10, 2014

  1. fixup! Remove NSString `existAtPath` category method

    Ronald Wampler authored

Jul 21, 2014

  1. Remove unnecessary instance variable

    As far as I can tell we only add objects to `_project`, but we never actually use it.
    
  2. Remove unused includes

  3. Code style fixes

  4. Remove NSString `existAtPath` category method

    Also rename NSString category from "Path" to "Additions".
    
  5. Remove NSString `isDirectory` category method

  6. Avoid use of the NSString `existsAtPath` category method

    We have removed the use of this category method from the rest of the code base. Refactor `FSXcodeProjectDataSource` so that we can delete it entirely.
    

Oct 28, 2014

  1. Bring the action button back for the commit window

    The new layout allows us to place the action button back in its original place when the table is revealed.
    
    Ronald Wampler authored
  2. Disable toggle button in the commit window when animating

    Ronald Wampler authored
  3. Rename `populateTableView` to `setupArrayController`

    With the previous refactoring the new name is more appropriate.
    
    Ronald Wampler authored
  4. Commit Window: Refactor

    The view layout is rearranged in order to animate showing the table, which is now shown below the toggle button with the Cancel and Commit buttons sliding down. Additionally, when not showing the table we remove all relevant views from memory.
    
    Ronald Wampler authored

Oct 7, 2014

  1. Switch to programmatic CWTableCellView

    Ronald Wampler authored
  2. Don't use deprecated mate API

    Ronald Wampler authored

Sep 29, 2014

  1. Use grammar to set the default settings for git

    This way the settings can also be applied in the Commit Window (and .git/MERGE_MSG).
    
    Ronald Wampler authored
  2. Set path for the commit window document

    This is so that the commit window’s text view sources project specific settings.
    
    Ronald Wampler authored

Aug 28, 2014

  1. Announce current chooser item after edits in search field

    This puts the VoiceOver user experience in OakChooser on par with
    Spotlight in Yosemite which also announces currently selected item
    after every edit in the search field. This provides the user with
    feedback so they know whether the search result changed or did not
    change after typing/deleting in the search field.
    
    A manual AXSelectedRowsChanged notification is used - see
    http://lists.apple.com/archives/accessibility-dev/2014/Aug/msg00024.html
    for discussion about this.
    
    This change is Yosemite-only. While pre-Yosemite OS could probably be
    supported in the way it is now for the case when the user moves the
    table results with arrow up/down, I did not have time to fiddle with it
    and given that Yosemite will be released soon, I am not sure it will be
    worth the effort.
    
    Boris Dušek authored

Oct 18, 2013

  1. Close (empty) document when open is canceled

    Implements a TODO. A close-tab is now sent to clean up documents
    that failed to open properly, and a close-window is further sent
    if appropriate.
    
    Ryan Goulden authored
  2. Allow scmStatus to be explicitly enabled

    Previously, scmStatus would not be enabled on remote volumes even if,
    say, a .tm_properties setting explicitly matched a remote volume and
    set scmStatus = true. This patch allows setting scmStatus = everyDisk
    to skip the local-volume check.
    
    Also defined are scmStatus = localDisk and systemDisk. localDisk is
    the same as true (and is the default as before), systemDisk only
    enables files on the "/" volume.
    
    Ryan Goulden authored

Sep 28, 2014

  1. Tabs above document file browser header in tab bar

    Integrate visually file manager header in tab bar when tabs above document
    option in on. If tabs above document are off then use default gradient L&F.
    
    Bottom divider for file browser header view is not integrated in header for
    easier control if it is shown or not.
    
    Adam Strzelecki authored

Sep 24, 2014

  1. HOBrowserView: Avoid calling super on key events

    This workaround is to avoid a couple of undesired behaviors in the `HTMLOutputWindow` when the web page implements keyboard commands such as Git → Browse Annotated File (Blame). Namely, when using the keyboard commands, we would always receive an NSBeep. Also, fixed an issue when these key commands may conflict with menu keys. See comment in the commit for details.
    
    Ronald Wampler authored

Aug 3, 2014

  1. Commit button title summarizes the number of files to be committed

Jul 29, 2014

  1. Rework the commit window as a sheet (document modal)

    Previously, the commit window was changed from a "always on top" window to a more typical window that could be minimized or sent to the background. While this made viewing the diffs more convenient, we could easily loose track of it or at worst end up with multiple dangling commit windows. By making it document modal, this prevents dangling windows. Furthermore, since the commit window is now attached to the main project window and the file browser already has the SCM status, we hide the file list by default and dropped the action button. Users can choose to show the file list via a checkbox and the action button's menu is still available via the file list's context menu.
    
  2. Send diffs to a separate window

Aug 22, 2014

  1. Do not use macros for accessibility constants

    This improves the chance that someone googling for a certain accessibility
    attribute or other accessibility constant in order to find inspiration how to
    implement it will find our code in OakTextView. It also makes the code more
    understandable for reading by someone else, and generally follows the way
    others write accessibility code (including Apple in their code samples). It
    does make the code more verbose, but I think that does not outweight the above
    advantages.
    
    Inspired by: googling and "githubbing" for NSAccessibilityLinkTextAttribute:
    http://lists.apple.com/archives/accessibility-dev/2014/Aug/msg00016.html
    
    Boris Dušek authored

Jul 31, 2014

  1. Use "key equivalent" instead of "shortcut"

    Boris Dušek authored

Aug 14, 2014

  1. Use proper deallocator for SecKeychainItemCopyAttributesAndData

    This was found using clang's static analyzer.
    
    Ronald Wampler authored

Aug 9, 2014

  1. Do not use `convertBaseToScreen:` and `convertScreenToBase:`

    These methods were deprecated in 10.7. Use `convertRectToScreen:` and `convertRectFromScreen:` instead. This is required for proper high resolution support.
    
  2. Do not use `convertPointToBase:` and `convertPointFromBase:`

    These methods were deprecated in 10.7 and log warnings in the console when called. The documentation says to use `convertPointToBacking:` and `convertPointFromBacking:`, respectively, instead; however, these methods should not really be used in this case. We just want to store the top left position (point) of the OakChoiceMenu's frame in the OakDocumentView's coordinate systems so we can update its frame to the new position when OakDocumentView's bounds change. We do not need exact pixel alignment. The original choice to use the above deprecated methods was probably based on the use of `convertBaseToScreen:` and `convertScreenToBase:`, but these were also deprecated in 10.7. They can be replaced with the equivalent `convertRectToScreen:` and `convertRectFromScreen:`, respectively.
    
    So instead, for this case, `convertRect:toView:` and `convertRect:fromView:` suffices and actually yields better tracking. (We could have used the corresponding "point" methods, as well, but we needed to convert the point to a NSRect to use `convertScreenFromRect:`, etc.)
    
    With the original code, when the view bounds change, the position of the OakChoiceMenu would extend well below/above the placement of the caret.
    

Jul 30, 2014

  1. Use dictionary literals

  2. Remove no longer used option for the Commit Window

    Originally, the "--ask" option was used in the previous commit window to change the NSTextField above the text view; however, no SCM bundles (in textmate's repos) currently uses it.
    

Jul 29, 2014

  1. Retrieve the sheet delegate if present in main window

Aug 2, 2014

  1. Loop select items in Chooser

    If `enableLoopFilterList` is set to `YES`:
    
    - when at top, pressing <Up> selects the last item on bottom
    - when at bottom, pressing <Down> selects the first item on top
    
    Zete Lui authored
  2. Remove compiler error

  3. Add Ruby 2.0 support for build scripts

Jul 11, 2014

  1. Add space invisible

    The implements the space invisible using the new method of drawing the invisibles so it does not affect right-to-left text.
    

May 24, 2014

  1. Make CoreText manage the tabs

    Rather than putting tabs in their own node, leave them in the text nodes and allow core text to handle the size. This fixes the issue with using tabs in right-to-left text.
    

Jul 30, 2014

  1. Make the Find and HTML window switch back to a Space TM is actually in

Jul 15, 2014

  1. Implement basic accessibility for OakKeyEquivalentView

    I experimented a lot with different combination of attributes, this one works
    reasonably well compared to the others (even though it is less feature
    complete). I may revisit experimenting with it at some later point.
    
    Boris Dušek authored

Jul 13, 2014

  1. Improve accessibility for OakBundleItemCell

    More specifically item's displayed keyboard shortcut or tab trigger is now
    announced by VoiceOver.
    
    Implementation of accessibilityAttributeValue:forParameter: returns nil for
    some attributes. This is a hack to avoid doing tedious adjustments of certain
    parameterized attributes (like AXStringForRange, AXAttributedStringForRange,
    AXBoundsForRange, AXRTFForRange) for string AXValue that is extended (appended)
    by extra information at its end in accessibilityAttributeValue:. To get an idea
    how tedious this is (even though our case is a bit simpler by not *prepending*
    anything before the AXValue, and not being an editable field), look at
    OakLinkedSearchFieldCell. This looses the ability for the user to interact with
    the text, but considering how seldom this will be used (if at all), for now
    this seems acceptable.
    
    This is needed because VoiceOver asks for the *StringForRange attributes and if
    implemented, will never query AXValue (which is where our custom behavior is).
    
    In the future when tables will be migrated from cell-based to view-based ones,
    the tab trigger or shortcut could be a separate NSView, which would probably
    allow for much more elegant solution to this problem.
    
    Boris Dušek authored
  2. Use AXValue of OakChooser's cells for accessibility announcements

    Previously we used [NSCell stringValue], which is not suited for cells with
    custom implementation for AXValue accessibility attribute.
    
    Boris Dušek authored

Jul 27, 2014

  1. Make ⌘F default to 'Selection' for multi-line selection

    Previously using ⌘F with a multiline selection would automatically set the “in”
    pop-up to “Document”. This is no longer the case, but can be brought back by
    running: `defaults write alwaysFindInDocument -bool YES`
    

Jul 11, 2014

  1. QuickLook: Abort preview when type can't be determined

    Nyx0uf authored
  2. QuickLook: Check for cancellation

    Add a bit of redundant code but it's useless to continue doing stuff if the request is cancelled by the user anyway.
    
    Nyx0uf authored

Jul 10, 2014

  1. QuickLook: Handle thumbnail generation

    Read at most 1 KiB or 50 lines of a file and render the attributed string in a bitmap context.
    
    The theme is set to Mac Classic to ensure a white background for best look when the previews are used as icons in Finder.
    
    The user’s default fixed width font in size 4 is used. With this font size only around 7 lines are shown, so we need to make it smaller, but we probably want to scale down the result to allow fractional line heights.
    
    A lot of code is copy/pasted from the QuickLook preview generator.
    
    Nyx0uf authored

Jul 22, 2014

  1. Adding some 2012 committers.

    Brad Choate authored
  2. Support a "--warn" switch for gen_html.

    Default is to suppress any warnings for unassociated GitHub profiles.
    
    Brad Choate authored

Jul 13, 2014

  1. VariablesPreferences: Abort editing before deleting a row

    This prevents `tableView:objectValueForTableColumn:row:` from throwing an exception (index beyond bounds) when the user deletes the last row while it is being edited.
    
  2. VariablesPreference: Disable delete button when table is empty

Jul 12, 2014

  1. Optimize Zoom support a little bit

    This makes Zoom support avoid doing all 2 conversions between UTF-8 to UTF-16,
    and replaces call to rect_for_range with call to rect_at_index, which is
    more efficient.
    
    Note that this is a typical micro-optimization not resulting from any
    actual performance measurement, but just from a desire to have a lean
    code not doing redundant work.
    
    Boris Dušek authored
  2. Fix textmate/bugs#5

    When setSelectionString is called during editing of text (like inserting
    or deleting a character), it catches layout in a semi-consistent state
    where horizontal position of individual characters cannot be determined.
    Therefore during such events, we cannot pass the correct screen position
    to the call to UAZoomChangeFocus.
    
    So let's do the UAZoomChangeFocus call after this iteration of run loop.
    This ensures everything in layout that had to update has updated when
    calling UAZoomChangeFocus, thus enabling us to provide correct horizontal
    screen position.
    
    Boris Dušek authored
  3. layout: Fix bol_as_eol for case where range length is 0

    bol_as_eol was meant for non-empty ranges, but the only place where
    empty ranges were attempted with bol_as_eol was for Zoom tracking,
    and it seems like I did not re-test Zoom after making the bol_as_eol
    commit.
    
    Fixes textmate/bugs#4
    
    Boris Dušek authored

Jul 2, 2014

  1. Add search field to Bundle preference pane

  2. Use "System Small" font in VariablesPreference table

    Since variable strings can be very long and we reduced the font size in the bundle table, let's be consistent and use a smaller font size here too.
    

Jul 1, 2014

  1. Save VariablesPreferences.xib with Xcode 5.1.1 (5B1008)

  2. Use "System Small" fonts in BundlePreference table

    By using a smaller font size in the bundle table we can show more of the bundle description. Also, it minimizes the amount of resizing of the pane we have to do to see the entire description string for most of the bundles.
    
  3. Save BundlePreferences.xib with Xcode 5.1.1 (5B1008)

Jun 29, 2014

  1. Fix build error on clear rebuild

    When rebuilding textmate from scratch:
    
    git clean -xffd; git reset --hard HEAD; rm -rf ~/build/TextMate/; ./configure; ninja
    
    This error appears:
    
    Frameworks/OakAppKit/src/OakTabBarView.mm:7:9: fatal error: 'OakAppKit/OakFileIconImage.h' file not found
    
    After one issues "ninja" again, textmate continues building fine.
    
    I guess this might be because perhaps OakAppKit's headers are being copied
    to the build include directory (~/build/TextMate/include) in parallel when
    building OakTabBarView.mm. No matter what actually is the case, this patch
    fixes building during clean build.
    
    Boris Dušek authored
  2. Add contributor emails

    In other words, I don't like build warnings of any kind :-)
    And they deserve credit for their contributions.
    
    Boris Dušek authored

Jun 22, 2014

  1. Use NSAccessibilitySharedFocusElementsAttribute in OakChooser

    This new 10.10 API allows one to mark, for some UI element, a set of UI
    elements to track selection. VoiceOver (and other accessibility clients)
    will then track and announce selection (cursor) changes not only in the
    currently focused element, but also for all elements contained in its
    "shared focus elements" array. This is a perfect fit for search field
    with a table of results. In fact it is used for new 10.10 Spotlight -
    its search field's shared focus element is the table containing the results.
    
    As NSAccessibilitySharedFocusElementsAttribute is available only in the 10.10 SDK,
    so make a way to use its value with previous SDKs (with which TextMate
    is currently compiled).
    
    We also retain the kind-of-hacky solution for pre-10.10 OSes introduced in
    and instead use NSAccessibilitySharedFocusElementsAttribute.
    
    This code was tested in all 6 fields of a 3×2 matrix:
    * compiled with 10.8, 10.9 and 10.10 SDK
    * run on 10.9 and 10.10 (DP2)
    
    For user, this means more standard behavior (says the same "completion selected"
    thing as with Spotlight) and a bit more correctness (no extra space
    before beginning / after end of search field on braille display).
    
    For developer, this means once we stop supporting 10.9, we will be ready to
    drop a lot of code which, while serving us well to make the choosers more
    user friendly on pre-10.10, will no longer be needed.
    
    Boris Dušek authored
  2. Tune tab label inset shadow

    Now it matches more way other OSX elements are inset both on Retina and
    non-Retina displays.
    
  3. Reworked OakTabBarView layout plist

    Now it supports properly Retina using Cocoa rounded corner rendering instead
    pixel patches. All colors are now references by name.
    
  4. Define color names for OakTabBarView

    This lets layout file refer to color names instead hardcoding color hex values.
    
    Also colors referenced by name can return different values depending on OSX
    version, which will in future solve problems with OSX 10.10 Yosemite L&F.
    
  5. Extend layer_t with cornerRadius & borderColor

    This allows drawing rounded layers with border in resolution independent
    manner. Also it reduces number of layers needed to certain UI elements.
    
  6. Fix enum/int conversion error with 10.10 SDK

    10.10 SDK makes NSLineBreakMode into a proper NS_ENUM enum (in 10.9 SDK it was
    a plain typedef for NSUInteger with some integer NSLineBreak* values
    conveniently available for it in an anonymous enum).
    
    Nevertheless, attr_string code should have always used NSLineBreakMode instead
    of NSUInteger (unless I am missing something like values in style::line_break::mode
    that do not correspond to the enum), so this commit makes it so and
    thus also fixes building with 10.10 SDK.
    
    Boris Dušek authored

Jun 19, 2014

  1. Use document icons in overflow menu

  2. OakTabBarView datasource now sends the unabbreviated path

Jun 7, 2014

  1. Adjust click target for tab overflow button

  2. Add effect when the tab overflow button is clicked

  3. Adjust appearance of the TabOverflow image

Jun 3, 2014

  1. Add Retina asset for TabOverflow

Apr 29, 2014

  1. Indent menu items in `tabSizeMenu`

    This allow the check mark to be properly spaced with respect to its item.
    

Apr 20, 2014

  1. Prefer `NULL` to `nop:` in most cases

    This change was prompted by the appearance of the `tabSizePopUp` button in the status bar. After dismissing the menu, the title would be disabled.
    
    To ensure we do not have similar issues elsewhere, let's prefer the use of `NULL` to `nop:` when assigning the action for menu items unless we are sure that the menu item should always be disabled (e.g., the item is used as a label).
    

Apr 29, 2014

  1. Enable "Open Files" search option in Find window

    This seems to have been overlooked since most of logic was already implemented.
    
    There is one known issue that exists when restoring sessions. Namely, after restoring a session only those documents (tabs), which have been actively "viewed" are considered "opened".
    
  2. Remove duplication of find_tags enumeration

Apr 10, 2014

  1. fixup! Allow user to clear previous commit messages

Apr 9, 2014

  1. Implement "--log" option for commit window

    This fixes a regression. The previous commit window allowed a "--log" option to be specified that would pre-populate the text view with the given argument.
    

Apr 4, 2014

  1. Use NSAccessibilityUnignoredDescendant to streamline code

    Boris Dušek authored
  2. Add '+initialize' guard

    Per https://www.mikeash.com/pyblog/friday-qa-2009-05-22-objective-c-class-loading-and-initialization.html
    
    Boris Dušek authored
  3. Cleaner disabling of image view accessibility.

    Boris Dušek authored

Apr 3, 2014

  1. Show last commit message in the Previous Commit Messages menu

    This was previously set to a pop-up menu, hence the need for a placeholder item to set the menu title. However, for pull-down menus, the first item is used as the title and remains fixed.
    
    This difference in behavior caused the last used commit message (first item) not to be listed in the menu.
    
  2. Set display name when sending diff to TextMate

    We set the name as:
    
    	'---/+++ file'
    
    I wanted the display name to suggest a diff without calling it something directly as "file (diff)", so I thought '---/+++' would be a nice and condense way of indicating that.
    
  3. We use camelCase for local variables

Mar 17, 2014

  1. New (native) commit window

    This is based on the previous commit window code base. It replaces the NSTextView with a OakTextView for entering the commit messages. This allows us to take advantage of some of the git grammar features, e.g., fixup!.
    
    If other SCM bundles are updated in the future to include any specific grammars, these can be used in the commit window by setting the bundle grammar to "text.SCM-commit", where SCM could be hg or svn for example.
    
    Changes to note:
    
    	*  The Modify row button for the "--action-cmd" commands are now implemented in the action menu and the table context menu.
    
    	*  The shortcut for committing is ⌘↩ (but fn-return seems to (still) work).
    

Mar 20, 2014

  1. Export TM_SCM_NAME and TM_SCM_BRANCH

    This will be used by OakCommitWindow.
    
    Also removed extraneous whitespaces.
    

Apr 2, 2014

  1. Add application category for OS X

    Applications is often not subfoldered and View --> Arrange by Application Category helps but apps need to have this metadata otherwise they're sorted into "Other" at the bottom.  https://developer.apple.com/library/Mac/releasenotes/General/SubmittingToMacAppStore/#//apple_ref/doc/uid/TP40010572-CH16-SW8  (this applies to all Mac apps, not just those coming from App Store)
    duanemoody authored

Mar 31, 2014

  1. Add my work email as contributor address

    Boris Dušek authored
  2. Use UI creation functions for accessibility in status bar

    Boris Dušek authored
  3. Add accessibility labels to Find dialog

    Boris Dušek authored
  4. Add ability to specify AX labels in UI functions

    Accessibility labels now can be specified conveniently as a parameter
    of a UI construction function.
    
    Boris Dušek authored
  5. Add OakSetAccessibilityLabel function

    This function makes it easy to set accessibility "labels" for UI elements.
    It is flexible - takes care of NSView vs. NSControl case, labels can be
    specified directly as a string or as a user interface element.
    
    Boris Dušek authored

Mar 25, 2014

  1. Moved OakCreateActionPopUpButton method to OakUIConstructionFunctions.h

    While code reuse is an added benefit, the main motivation was to fix the appearance of the action popup button in the Find window. The first (placeholder) item in the Find window's action button was assigned a nop action so that when the button was clicked and it's menu validated, the "action" image would always appear as disabled.
    

Mar 15, 2014

  1. No representation for usual ZERO-WIDTH chars

    ZWNJ is so common in Persian texts, and its unicode bi-direction class in neutral.
    But the representation chunk contains latin characters and are so left-to-right.
    So, when ZWNJ is replaced by the representation chunk, rtl texts are rendered incorrectly.
    
    ZWJ and ZWSP are from the same class, but less common at least in Persian texts.
    

Mar 8, 2014

  1. Workaround for accessibility of OakChooser's search field

    Currently for VoiceOver user when the text cursor is at the end of the search
    field (which is 99% of the time) and the user wants to navigate the results
    in the table view using arrow down, then after each arrow down, VoiceOver first
    plays a "end-of-text" sound, then announces whole contents of the search field,
    and only then announces the newly selected search result. (The same happens
    when text cursor is at the beginning of the search field and user presses
    arrow up.)
    
    This is probably a bug in the way AppKit handles text field accessibility - see
    http://lists.apple.com/archives/accessibility-dev/2014/Feb/msg00019.html
    
    I also reported this as <rdar://problem/16271507>
    
    I hereby present a hacky workaround for this - a subclass of NSSearchField
    that tricks accessibility into thinking there is one extra space before and
    after the text in the search field. Therefore VoiceOver will not think the user
    is at the end of text when they actually are, and therefore will not play the
    "end-of-text" sound and announce whole contents of the search field before
    getting to the information user wants (the newly selected search result).
    
    While this is a bit hacky, along with the previous commit it allows VoiceOver
    to have the same instant great experience as a sighted user when filtering
    and browsing results in OakChooser. So I think it's worth the hackiness until
    there is a better alternative.
    
    There is only last issue, as currently VoiceOver is very chatty when the
    OakChooser window appears: first says "Go to file", if user interrupts it with
    an action (i.e. moving VO cursor or typing a character), then VoiceOver starts
    telling the whole title of the window, and only after user interrupts it again
    does VoiceOver say or announce only the user actions (including search results
    table selection change).
    
    So the simpliest if the user wants to start navigating the table items
    immediately after showing the OakChooser's window (i.e. without entering
    a search term) is to, after showing the OakChooser (e.g. with ⌘T or ⇧⌘T),
    quickly type any letter and immediately delete it with backspace and then
    use arrow down/up.
    
    Boris Dušek authored
  2. Announce current OakChooser item to accessibility

    This solves accessibility of situation of a user browsing results in
    OakChooser (currently File Chooser and Symbol Chooser). Typically
    the user is in search field and after typing the search string
    wants to use arrow down and up to browse results.
    
    The problem this presented to accessibility was that VoiceOver reads
    only changes of selection in the current VoiceOver item. As the user
    is on the search field but the selection changes in the results table
    below, VoiceOver did not read the various search results when pressing
    arrow up/down.
    
    Alternative was to leave the search field, move to the results table,
    interact with it and then navigate it with VoiceOver. This is however
    not the desired user experience comparable to that of sighted users,
    as the VoiceOver user still has to do quite a few steps after entering
    the search string to browse the results, not to speak about the situation
    when the user would like to change the search string - he/she would need
    to leave the table and get back to the search field.
    
    This solves the problem by making the search field (or more generally
    any user interface element that triggers change of selection in the
    results table, which should be the element the VoiceOver cursor is on)
    announce to accessibility the contents of the selected row in search
    results table.
    
    See this thread on accessibility-dev mailing list where the options for
    implementing such a user interface in an accessible way are discussed:
    
    http://lists.apple.com/archives/accessibility-dev/2013/Dec/msg00000.html
    and
    http://lists.apple.com/archives/accessibility-dev/2014/Feb/msg00016.html
    
    If the user did not move selection (it is on the first line) and they
    want to hear it, they should use arrow up to hear it. Then they can
    use arrow down to move through results.
    
    Boris Dušek authored

Feb 12, 2014

  1. Fix typo in contacts usage description

    Ronald Wampler authored

Feb 8, 2014

  1. refactor duplicate folding code into one method

Jan 20, 2014

  1. Preference to auto-reveal the current file in the project browser

    An option called "Auto-reveal open file in project browser" has been
    added to the Projects preference pane. When checked, the currently open
    file will be revealed in the project's file browser. By default, the
    option is not checked and thus the behavior is as it was before.
    
  2. Saved with Xcode 5.0.2 (5A3005)

Jan 8, 2014

  1. Fix file browser height for tabs above document

    This fixes regression caused by 1de5d90475788143655a60fdbff654139fec3cb4 that
    divider height and default compression priority disallowed expected height.
    
    Adam Strzelecki authored

Dec 29, 2013

  1. Note that capnp is now brew installable

    Aria Stewart authored

Dec 27, 2013

  1. Show git conflicts with priority

    Gerd Knops authored

Dec 22, 2013

  1. Ensure FSItem name property is not nil when setting menu title

    We use to pass nil to NSMenuItem initWithTitle: when clicking the SCMFolders in
    SCM Status (see commit e5841fe); however, we will *probably* never encounter
    this now. But it might be useful, if custom data sources are implemented for the
    file browser in the future.
    
    Ronald Wampler authored
  2. Use new safeObjectAtIndex method

    Also removed the static SafeObjectAtIndex mehtod in OakTabBarView
    
    Ronald Wampler authored
  3. Add safeObjectAtIndex to NSArray

    This is defined in OakTabBarView as a static method, but it could be useful elsewhere.
    
    Ronald Wampler authored
  4. Remove unneccessary #import statements

    Ronald Wampler authored

Dec 2, 2013

  1. Remember window zoom state and regular window frame

    This fixed problem when closing TM2 with zoomed window, then unzooming window
    after restart caused invalid window placement.
    
    Adam Strzelecki authored

Nov 24, 2013

  1. Add query component to scm URL

    Previously when constructing a scm URL from a path, if scm was not enabled
    we returned a file URL. This could result in some unexpected behavior.
    For instance, when a directory was selected in the file browser,
    activating "SCM Status" would just open the untracked directory.
    This patch, insteads, adds a query to the scm URL that can be parsed to
    determine how to handle the scm status request later on.
    
    Ronald Wampler authored

Nov 18, 2013

  1. Updates link to Homebrew, to a functioning link.

    Charlie Park authored

Nov 10, 2013

  1. Support getting AXVisibleCharacterRange accessibility attribute

    Boris Dušek authored
  2. Fix accessibility visual bounds ending at line boundary

    Accessibility visual bounds for a range of a single softline should always
    be also visually restricted to the softline. This is in order to be consistent
    with implementation in Apple's apps (e.g. TextEdit).
    
    Boris Dušek authored
  3. Use softlines instead of hardlines for accessibility

    Fixes #1149.
    
    VoiceOver expects AXLineForIndex and AXRangeForLine to be consistent with
    the movement by line using arrow up/down. That means it expects "line"
    to mean softline.
    
    VoiceOver also distinguishes commands to move by:
    * paragraph (hardline): VO-Shift-PgUp/PgDown
    * line (softline): VO-up/down
    
    These are available when interacting with the text area (VO-Shift-down).
    
    This commit therefore fixes the AXLineForIndex and AXRangeForLine
    to make "line" mean "softline" instead of "hardline" as was the case
    until now.
    
    Boris Dušek authored
  4. Provide conversions between softlines and buffer positions

    Boris Dušek authored
  5. Track softline count in layout

    Boris Dušek authored

Oct 20, 2013

  1. Support text links with VoiceOver

    Now links in text (e.g. links to RFCs after installing the Hyperlink Helper bundle)
    are announced as such with VoiceOver and it is possible to search for them with
    VO-Cmd-L.
    
    TODO:
    
    * launching links with VO-Space is not supported yet, but Enter (Fn-Return)
      does the same thing and is even more reliable.
    * link URL is not supported, so it is not possible to learn the URL
      with VO-Shift-U.
    
    Boris Dušek authored

Nov 12, 2013

  1. Embryo of developer documentation :-)

    This is a document with information I found most useful as a
    new contributor to TextMate - basic stuff a new contributor is likely
    to get in contact with.
    
    It's of course incomplete, sparse, can be not well worded and even contain
    mistakes. But someone had to make the first shot :-)
    
    Boris Dušek authored

Oct 31, 2013

  1. Remove high-level UTIs from Quick Look generator

    This should allow Quick Look generators to function when they target a more specific UTI. Discussed in #1141 and #1168.
    
    Michael Sheets authored

Oct 23, 2013

  1. Added a possessive apostrophe to `mate -h`

    TextMate's, not TextMates.
    
    Shane Becker authored

Oct 10, 2013

  1. Always recommend plain text when opening files.

    Ryan Goulden authored
  2. Allow sorting bundles by installed

    Ryan Goulden authored

Sep 8, 2013

  1. Add “invisiblesMap” option to the .tm_properties file

    This setting allows changing which invisibles are shown and what glyph
    is used for them.
    
    Invisibles are '\t', '\n', and ' ', to turn one off, add ~[\t \n] to
    the settings string. To set the glyph used for the invisible, add [\t
    \n][glyph_to_use].
    
    Steven Clukey authored
  2. Add layout_t::set_character_mapping

    This allow configuring which characters should be used to render tabs, spaces, and newlines (when “show invisibles” is enabled).
    
    Steven Clukey authored
  3. Added spaces as an invisible

    Steven Clukey authored

Sep 12, 2013

  1. Add icon definitions to CFBundleDocumentTypes

    Works around a bug where icons are not inherited from the UTI definitions.
    
    Michael Sheets authored

Sep 8, 2013

  1. Support text attributes with VoiceOver

    VoiceOver can announce text formatting, such as bold font, italics,
    underline, font, etc., as well as whether text is misspelled. For this,
    it needs the AXAttributedStringForRange attribute supported. This commit
    does exactly that.
    
    Testing can be done in this way (VO stands for Ctrl-Option):
    
    * first interact with the text (VO-Shift-down arrow when standing
      on the text element)
    * to announce text attributes for character after cursor, press VO-T
    * to seek for next:
      * misspelled text: VO-Cmd-E
      * color change:    VO-Cmd-K
      * underlined text: VO-Cmd-U
      * many more (see VO-H-H, "Find", close help with Esc)
    * to seek for previous *: just add Shift to the shortcut
    
    Some attributes remain to be supported (full list of attributes is available at: https://developer.apple.com/library/mac/documentation/cocoa/reference/applicationkit/Protocols/NSAccessibility_Protocol/Reference/Reference.html#//apple_ref/doc/uid/20000945-SW53).
    
    The misspelled text VoiceOver support can be used nicely with TextMate's
    spelling support:
    
    1. the user finds next mistake with VO-Cmd-E, hears the misspelled word,
       perhaps reads it on a braille display
    2. the user then presses Cmd-; to show the spelling menu for that word
       and chooses the desired resolution (apply suggested correction etc.)
    3. go back to step 1. :-)
    
    Boris Dušek authored

Sep 3, 2013

  1. Let OakFinderLabelChooser draw and manage it's own title

    This removes the need to create and manage a separate menu item
    as a placeholder for the title of the color swatch in the file
    browser action menu.
    
    Ronald Wampler authored

Sep 5, 2013

  1. Use std::atomic family

Sep 3, 2013

  1. Only show suggestions when Check Spelling is called via menu item

    Otherwise just select next spelling error on Check Spelling, which is called by
    spelling panel as well.
    
    Adam Strzelecki authored

Sep 2, 2013

  1. Invalidate spelling when ignoring or learning a word

    We invalidate the entire buffer since the word can appear in multiple locations. This could be optimized to only invalidate misspelled instances of the ignored or learned word. Likewise, we redraw entire buffer since the refresh macro is not able to handle changes in spelling meta data and calculate minimal refresh region.
    
    Adam Strzelecki authored
  2. Reduce text overlap when showing context menu

    Adam Strzelecki authored
  3. Add Show Next for quick spelling iteration

    Also add key equivalents to spell popup menu.
    
    Adam Strzelecki authored
  4. Implement Check Spelling

    Now using Edit -> Spelling -> Check Spelling selects next spelling error or one
    at caret if it was not yet selected, then shows context menu with correction
    suggestions.
    
    This makes checking spelling as easy as tapping Cmd+;
    
    Closes #1103
    
    Adam Strzelecki authored

Sep 3, 2013

  1. Use UTIs for both application and Quicklook generator

    UTIs are taken from both the Apple supplied list and newly created for those that didn't exist. For those languages where no clear 'owner' existed to provide the reverse-DNS notation we use a com.macromates.* stand-in.
    
    Michael Sheets authored

Aug 5, 2013

  1. Show a chevron menu button when tab bar overflows

    The behavior is based on Safari where last visible tab is swapped with the selected tab, if selected tab itself would not be visible.
    
    Commit edited by Allan Odgaard, original version used document icons in overflow menu and would make the effective last tab sticky.
    
    Closes #1060
    

Aug 27, 2013

  1. Fixed typo

    Shelby Munsch authored

Aug 21, 2013

  1. Stop Find window showing an NSSavePanel on ⌘S

    David Howden authored

Jul 26, 2013

  1. Add Quick Look generator

    Closes #1062
    

Jul 27, 2013

  1. Use @rpath so frameworks can be loaded from the app bundle

    @executable_path is the originally-executed program, whereas @loader_path is the program that caused the load to occur (e.g. a Quick Look generator). @rpath can be changed at link time — a QL generator can specify a value that points to the enclosing app bundle’s Frameworks directory.
    

Jul 28, 2013

  1. Add usernames for missing GitHub email addresses

Jul 27, 2013

  1. Move load_bundles to bundles framework

  2. Move fs_cache to plist framework

  3. Rename “index.{cc,h}” to the more appropriate “item.{cc,h}”

  4. Move some bundles code from index.h to query.h

Jul 26, 2013

  1. Modify gen_build to accept keys for copying into nested directories

Jul 27, 2013

  1. fixup! Show a tool tip when searching wraps around

Jul 25, 2013

  1. Support UTF-16/32 and user fallback encoding for folder search

    The fallback encoding is taken from .tm_properties (attr.unknown-encoding).
    

Jul 21, 2013

  1. Add source list style setting for the file browser

    When this setting is enabled it will render the file browser with the source list style, that is, the same style as the sidebar in Finder.
    
    To enable run: defaults write com.macromates.TextMate.preview fileBrowserStyle SourceList
    

Jul 23, 2013

  1. Fix file browser layout issue

    Shrinking the file browser width so that the folder drop-down
    text is compressed would cause the layout to break if the width
    was then increased.
    
    David Howden authored

Jul 21, 2013

  1. Added “Stop Search” button to Find dialog

    Previously wasn't possible to stop a search in progress (even
    when closing the Find window).
    
    David Howden authored

Mar 19, 2013

  1. Bar button positioning tweaks

Jul 20, 2013

  1. Remove obsolete help text for mate -n

Jun 14, 2013

  1. Enable "Inspect Element" in web preview

    Zete Lui authored

Jun 12, 2013

  1. Don't add files from find window to recent list

    Jakub Suder authored

Jun 6, 2013

  1. Apply injections from child rules without match pattern

    This is useful when including a grammar and its injections needs to be applied.
    

Apr 30, 2013

  1. Injected rules rank higher if they match against the left scope

    This allows overriding “native” rules via injecting.
    
    This commit drops support for using ‘.’ as (injection) scope selector to match everywhere. Instead use ‘*’.
    

Apr 28, 2013

  1. Corrected some Help typos

    AJ Acevedo authored

Apr 17, 2013

  1. Extended OakTextView API

    Added `scopeAsString` method to retrieve current scope as NSString
    

Apr 9, 2013

  1. Make bundles in bundle preferences table sortable

Apr 3, 2013

  1. Setup document scope attr.project.lein for Leiningen projects

    Leiningen is a build automation and dependency management tool mainly used for Clojure projects.
    
    https://github.com/technomancy/leiningen
    
    Dirk Geurs authored

Mar 31, 2013

  1. Post AXValueChanged when changing selected tab

    If this is on, then VoiceOver reads the name of the new tab being
    switched to, enabling easier navigation between open tabs.
    
    Boris Dušek authored

Mar 30, 2013

  1. Improve accessibility of file browser items

    Make available to accessibility the following information that file
    browser displays visual indication for:
    
    * file type (whether the file is a file, folder etc.)
    * SCM status (whether the file is modified etc.)
    * close button (whether the file is open)
    
    Also, while we are at it,  make available to accessibility the
    tooltip, filename and URL.
    
    Boris Dušek authored

Mar 18, 2013

  1. Make scope bar buttons AXCheckbox'es for accessibility

    This notifies the user the choice is exclusive to only one
    button. Also including these buttons in an AXRadioGroup adds
    positional indication to the radio buttons (like "2 of 3")
    which gives sense of how many values there are to choose from,
    where in the list of those the user currently is, and, if there
    are more sequential AXRadioGroups (which is not the case here),
    it distinguishes in which one the user is making a choice.
    
    Boris Dušek authored

Mar 24, 2013

  1. Using ‘$’ in scope selector will anchor to end of content scope

    The content scope is the portion of the scope created while parsing the document content, unlike scope attributes, document, project, SCM, and dynamic scopes (appended to the content scope).
    

Mar 22, 2013

  1. Re-align Find/Replace labels due the larger font size

  2. Use OakCreateSmallLabel for the status text

    This treats the label as a small size control.
    
  3. Use the systemFontSize for labels, add function for small controls

    Before labelFontSize was used for all controls, as the label size should match the control size we need to have different functions for each control size.
    

Mar 19, 2013

  1. Implement filter through command

    Closes #131
    

Mar 20, 2013

  1. Improve tooltip positioning for multiple screens

Mar 19, 2013

  1. Clean up formatting of selection string

Mar 20, 2013

  1. Use divider image from status bars for file browser header

Mar 19, 2013

  1. Add an etched effect to the status/action bar dividers

Mar 8, 2013

  1. Remove lesser used icons to save space in download

Mar 7, 2013

  1. Adjust scroll past end height logic

    This will work properly with very long lines and soft wrap
    
    Fixes #869.
    

Jan 31, 2013

  1. Lighter tab bar background for better readibility

    Adam Strzelecki authored

Mar 2, 2013

  1. Present the file browser area as a group to VoiceOver/accessibility

  2. Present the document view as a group to VoiceOver/accessibility

    This enables VoiceOver user to see the document view as a single
    element and interact with it (i.e. inspect its subelements) only when
    needed by using the VO-Shift-down shortcut (and stop interacting with
    it using VO-Shift-up shortcut). This makes the element structure more
    hierarchical where at the top level are only major user interface
    components, so that it's easier for orientation. It also prevents
    unrelated UI elements to be sequential as VoiceOver by default orders
    elements by the visual order (top-down, left-right) rather then
    the order in the AXChildren array. For example in this case,
    the bottom status bar of the document window gets separated from
    the bottom toolbar of the file browser, unlike the situation before
    grouping when both bars were adjacent to the VoiceOver user.
    
  3. Make macro recording an NSToggleButton

    This fixes semantics of the button and thus also its
    accessibility. The macro recording button represents state - more
    specifically a boolean state, so it has to be a NSToggleButton (or
    its specialization). Then the button is presented to the VoiceOver
    user as an AXCheckbox - that is a checkbox with on and off value -
    which is exactly what the button's function is. Examples of this in
    system apps is e.g. the "Play" button in QuickTime Player, which is
    also an AXCheckbox ("Pause" is then simply an unchecked "Play"
    checkbox).
    
  4. Fix initial accessibility of symbol pop-up

    VoiceOver reads an AXValue for a pop-up button - that is the selected
    item. But button's title does not set an AXValue, as it probably is
    not a menu item. So change the code set to the title by setting a
    single menu item with that title.
    
    This fixes accessibility of the pop-up when accessing its value before
    it is first popped up. It makes the code consistent with setGrammarName:
    which works fine (that's how I discovered how to fix it).
    
  5. Add AXDescription to pop-ups to tell about their purpose

  6. Add AXDescription to image buttons

Feb 24, 2013

  1. Add “scroll past end” option to the View menu

    When enabled the height of the document is increased by the height of the view port, which means the last lines of the document are not anchored to the bottom of the view port but can e.g. be centered.
    
    Closes #513.
    
    Steven Clukey authored

Feb 22, 2013

  1. Use integrated graphics on laptops

    Before using the 'Open…' dialog caused the discreet graphics chip to be enabled until TextMate exited. Setting this flag tells the OS that we want and are able to use the integrated graphics to conserve the battery. Detailed in Apple Technical Q&A QA1734:
    
    http://developer.apple.com/library/mac/#qa/qa1734/
    
    Michael Sheets authored

Feb 18, 2013

  1. Correct height of header when tabs above document is enabled

    Previously this appeared correct because once you clicked the minimum height of the pop-up menu set it to the correct height. Corrects an issue noted by @fatiotus in #728.
    
    Michael Sheets authored

Feb 15, 2013

  1. Improve constraint widths for status bar.

    - Set compression priorities to collapse fields in a desirable order.
    - Increase default width of selection string to fit 8888:88
    - Set grammar popup to the width of the active grammar and give is sensible minimum/maximum widths.
    - Set a maximum width for the tab size menu.
    
    Michael Sheets authored

Feb 13, 2013

  1. Truncate the selection string when it grows too long.

    Michael Sheets authored

Feb 14, 2013

  1. Use solid colors for divider line.

    This is required now that they are set as opaque.
    
    Michael Sheets authored

Feb 5, 2013

  1. Match HTML divider color with the status bar divider

    Michael Sheets authored

Feb 12, 2013

  1. Restyle html view status bar to match others

    Michael Sheets authored

Feb 5, 2013

  1. Restyle and add graphics to file browser action bar

    Michael Sheets authored

Jan 31, 2013

  1. Shrink height when tabs above document is enabled

    Michael Sheets authored
  2. Increase tab bar size one pixel

    This is to match the minimum allowed size for the sidebar header when the tabs above document is enabled, also matches the height of the forthcoming tab redesign.
    
    Michael Sheets authored

Jan 30, 2013

  1. Simplify constraints and set a height for file browser header

    Michael Sheets authored

Jan 29, 2013

  1. Move file browser divider into parent view

    Michael Sheets authored

Feb 4, 2013

  1. Use correct syntax for including local headers

    Michael Sheets authored

Feb 1, 2013

  1. Don't mutate shared themes

Jan 31, 2013

  1. Bind the grid icon to .less files

    Added .less files to the OakAppKit .plist bindings file as another grid icon, to go along with the existing .css, .sass and .scss definitions.
    
    Signed-off-by: Bob Rockefeller <bob@bobrockefeller.com>
    
    Bob Rockefeller authored
  2. Fixed wrong color in red file labels

    michael starke authored

Jan 28, 2013

  1. SymbolChooser live-updates its selections

    This code is public domain.
    
    Closes #166.
    
    Steven Clukey authored
  2. SymbolChooser references OakDocumentView instead document

    Since a document cannot send notifications, this will allow the
    SymbolChooser to monitor and respond to notifications from the
    DocumentView.
    
    Steven Clukey authored

Jan 30, 2013

  1. Fixed occasional “too light” title bar gradient

    This would mainly happen when creating new windows with a file browser.
    
    Described at:
    http://stackoverflow.com/questions/5812593/nswindow-textured-gradient-fill-weirdness
    http://stackoverflow.com/questions/7795505/nswindow-textured-background-with-nstextfield/11482772#11482772
    
    Adam Strzelecki authored
  2. Fixed control/tab bar label shadows

    NSShadowAttributeName has no effect when using CTFrame. Use
    CGContextSetShadowWithColor instead.
    
    Adam Strzelecki authored

Jan 23, 2013

  1. Tab bar above document option

    This change adds new option for showing tab bar only above document, so the
    file browser header lines up with tab bar.
    
    File browser header height reduced by 1 pixel to match tab bar height. It also
    draws optional top divider when in same line as tab bar
    
    Adam Strzelecki authored

Jan 24, 2013

  1. Added force open in TextMate and fixed confusion when opening an alias.

    Any file should be able to be opened within TextMate, so
    Option-DblClick will always do that. I first noticed this with .xib
    files.
    Because of the order of the if statements, opening an alias to a
    package or binary file (or .xib) would not have the previous if
    statements applied to it.
    
    Steven Clukey authored

Jan 25, 2013

  1. Add inactive state coloring for dividers.

    Michael Sheets authored
  2. Enable focus ring when 'Full Keyboard Access' is enabled.

    For aesthetic reasons the focus ring is disabled as there is no other control that can be active, however this is not the case with full keyboard access enabled as you can tab through the scope bar as well.
    
    Michael Sheets authored

Jan 23, 2013

  1. Added ability to set default type to use for unknown documents.

    Steven Clukey authored
  2. Improve layout and styling of Go to File window.

    - Remove focus ring from search field as there is no second target.
    - Set top and bottom border widths for the textured window.
    - Remove miniaturize and zoom buttons for lack of utility.
    - Match name of window to menu command.
    - Various color and spacing tweaks.
    
    Michael Sheets authored

Jan 22, 2013

  1. Don’t use font name / size as key values in style cache

    Font name and font size was being used in the cache key as a way to avoid having to do cache invalidation. This comes at a price of a 3X slow down. Instead clear the cache when font size/name changes. Excessive font name/size switching should be deterred IMO, why not with slowdowns? so no real downside. This does not affect themes setting font name/size, as they are handled by another mechanism.
    

Jan 20, 2013

  1. Restyle navigation bar to be more in line with Lion.

    - The shading is a combination of the scope bar and textured button used in Lion/Mountain Lion.
    - Add an inactive state.
    - Increase click area of the forward/back buttons while decreasing the image size.
    - Switch popup menu cell to NSBackgroundStyleLight, previously the text would go to gray when inactive this prevents that though it does lose the drop shadow.
    - Various tweaks to alignment and spacing.
    
    Michael Sheets authored

Dec 31, 2012

  1. Make OakTabBarView accessible

    Boris Dušek authored

Dec 8, 2012

  1. Make OakPasteboardSelector accessible

    Issues remaining:
    
    * VoiceOver for some reason cannot track keyboard focus
      (i.e. moving down the list with just down arrow does not move
      VoiceOver cursor). User has to move the VO cursor instead using VO-down
      (and keyboard cursor follows in this case)
    * the pasteboard window isn't focused automatically for VoiceOver, user
      has to switch manually to it using VO-F2-F2
    
    Boris Dušek authored

Jan 16, 2013

  1. Add “Show in Finder” context menu when no items are selected

    When you control-click the empty part of the file browser and select “Show in Finder” a Finder window will open showing the currently selected folder.
    
    You can go about this other ways, but I find that this feature complements the already existing "New Folder" menu item in the no-items-selected context menu of the file browser.
    
    This patch is public domain.
    
    Caleb Land authored

Jan 3, 2013

  1. Add "Reveal Current Document" command

    This reveals the current document in the file browser, by expanding directories to reach it, rather than changing the root directory of the browser.
    
  2. Move FS utility funcs from OFB to a separate file

Sep 17, 2012

  1. Limit redraw

    Do some checks to see if there is more to parse on the following line, before invoking the (layout) callback.
    

Nov 11, 2012

  1. Add support for “Zoom follows the keyboard focus”

    Zoom is an OS X accessibility feature that lets sighted visually
    impaired users magnify screen content. This commit notifies Zoom of
    changes of TextMate’s caret position on screen so that Zoom can
    automatically follow the caret when the user moves it.
    
    Boris Dušek authored

Oct 4, 2012

  1. VoiceOver/accessibility support for text view

    This commit adds support for most common accessibility
    methods/attributes to the OakTextView component. In user's language,
    VoiceOver users (i.e. blind and visually impaired users) can now use
    TextMate to read and write text.
    
    A few less used accessibility attributes remain to be supported -
    especially AttributedStringForRange and StyleRangeForIndex which should
    allow blind users to e.g. see and seek for spelling errors in text.
    
    Boris Dušek authored

Dec 11, 2012

  1. Add indentOnPaste to ordering in bundle editor

    Michael Sheets authored

Dec 13, 2012

  1. Use same mechanism to limit redraw in modifiedURLs

  2. Refactored calculations of touched filebrowser items into its own method

Dec 5, 2012

  1. Always set the TM_SOFT_TABS variable

    Backwards compatibility for commands that expect the variable to always exist or match the NO state, this matches the behavior of 1.x.
    
    Michael Sheets authored

Oct 18, 2012

  1. Limit file browser refresh on open/close

    If changes are limited to visible rows, we only reload these.
    

Oct 28, 2012

  1. Seed the contributor lookup table a bit.

    Brad Choate authored

Oct 6, 2012

  1. Add dynamic contributions page to the About window

    Brad Choate authored
  2. Evaluate embedded ruby in markdown files

    This is when generating HTML for the release notes, manual, and, where we actually need this, list of contributions.
    
    Long-term we should probably switch to template tags as we are effectively adding code to the (otherwise declarative) build graph, which means we don’t have any way to tell if the generated HTML is up-to-date or not (as that would require analyzing the embedded ruby code).
    
    Brad Choate authored
  3. Don’t output markdown headers when generating HTML

    Brad Choate authored

Nov 2, 2012

  1. Allow disabling document status in file browser

    Disabling this is achieved by setting `fileBrowserDocumentStatus` to `false` in `.tm_properties`.
    
    Disabling it should remove potential delays after opening, closing, and saving files when file browser is showing a lot of files. It is meant as a temporary workaround until the performance issues are addressed.
    
    Josh Goebel authored

Nov 1, 2012

  1. Spell out that “prebuilt binaries” is a link

    A user may read the text and use GitHub’s download button, thinking this is what the README refers to.
    
    Gary S. Weaver authored

Oct 26, 2012

  1. Make command properties drawer shorter.

    Re-layout input & output fields, so they don't enlarge whole drawer too much.
    
    Adam Strzelecki authored

Oct 6, 2012

  1. Apply default gutter theme when no theme is active

    Previously, if no themes were active, the gutter colors would
    not be set.  This would, effectively, give you random gutter colors
    on TextMate startup. (or, sometimes, a completely transparent gutter).
    
    Robert Hencke authored
  2. Fix typo in comment (NSMneu → NSMenu)

    Robert Hencke authored

Oct 1, 2012

  1. Add comma to release notes

    Jonas Müller authored

Sep 28, 2012

  1. Combine about, changes, and credits window

    This includes bundle changes.
    
    Rasmus Abrahamsen authored

Sep 22, 2012

  1. Added tm_query CLI that returns settings and variables for a file

  2. Add .scssc to list of non-text files

    Fixes #445.
    
    Étienne Després authored
  3. Fix “replace selected” for Find All in document

    Fixes issue #77.
    
    Rasmus Abrahamsen authored
  4. Incremental search keybindings

    You can now use CTRL+S and CTRL+SHIFT+S to jump forwards/backwards
    in the incremental search results
    
  5. Made the Live Search view prettier

  6. Fix CRLF issue #409.

    Rasmus Abrahamsen authored
  7. Consider .ai and .gif files binary by default

    A courtesy to anyone with images and illustrator files in their project!
    
    Sudara authored

Sep 18, 2012

  1. Use curly quotes in dialog text

    Ryan Maxwell authored

Sep 9, 2012

  1. Gutter theming round-up

    1. Removed the alpha channels from all images.
    2. Deleted unnecessary double images. (@sorbits: You might want to
    rename them to more accurately display what they do.)
    3. Slight adjustments to improve the visibility of the bookmark icons
    at lower font sizes.
    
    Dennis Vennink authored

Sep 7, 2012

  1. Extended gutter theming support

    The following four new keys have been added:
    
     - gutterIconsHover
     - gutterIconsPressed
     - gutterSelectionIconsHover
     - gutterSelectionIconsPressed
    
    Dennis Vennink authored

Sep 5, 2012

  1. Add revision numbers to release notes

    Elia Schito authored

Aug 27, 2012

  1. Add support for reading xcodeproj files

    Zach Drayer authored

Aug 31, 2012

  1. Fix warning for literal strings used with NSAlert

    __attribute__((format(...))) was added to NSAlert's class-based initializer in 10.7, and due to using string objects instead of literals as informative text, Clang is unable to guarantee the safety of the formatter, and, as such, issues a warning.
    
    Zach Drayer authored

Aug 28, 2012

  1. Fix a leak in OakHistoryController

    Zach Drayer authored

Sep 1, 2012

  1. Replaced contents of skeleton svn_status.xsl with real content.

    * Note: Column delimiter is back to four spaces due to XML/XSL not allowing control characters
    
    Jeremy Whitlock authored

Aug 31, 2012

  1. Lower the minimum value for the tab size slider to 1.

    Dennis Vennink authored
  2. Added the ellipsis icon for folded text.

    Dennis Vennink authored
  3. fixup! Incorporated scalable icons.

    Implemented proper alignment of the icons with the line number font.
    
    Dennis Vennink authored

Aug 30, 2012

  1. Incorporated scalable icons.

    Dennis Vennink authored

Aug 29, 2012

  1. Update gutter images

    Dennis Vennink authored

Aug 28, 2012

  1. Fix missing svn status for long committer names

    * Changed the Subversion status command to output XML
    * Updated the status parsing to handle new XML output
    
    Jeremy Whitlock authored
  2. New `TM_SCM_NAME` variable

    This can be used together with `TM_SCM_BRANCH` to customize `windowTitle`.
    
    Adam Strzelecki authored
  3. Update window title when application is activated.

    Variables customizing `windowTitle` such as `$TM_SCM_BRANCH` can change while TM is inactive, while user is working in command line or different app. So it is better to refresh `windowTitle` once we get back to TM.
    
    Adam Strzelecki authored

Aug 27, 2012

  1. Use 64-bit: update submodules

  2. Use 64-bit: numeric type fixes

    Unfortunately a printf precision specifier (‘%.*s’) can not come with a width specifier so we have to cast to int. The width specifier ‘t’ is used for ptrdiff_t.
    The int → NSInteger change fixed a bug with popup menu positioning, but there was no associated warning or error. It's possible there are more such bugs that we haven't found yet!
    
  3. Use 64-bit: miscellaneous fixes

    - Property using superclass ivar
    - Multiple methods matching selector
    
  4. Use 64-bit: explicit visibility where required

  5. Use 64-bit: alignment pragma change

  6. Use 64-bit: CF byte order functions & 64b version

  7. Use 64-bit: stop using Carbon

    As we are no longer using Carbon functions to set menu key equivalents, this means that bundle menu items which have the same key equivalents as main menu items will unfortunately not display their key equivalents in the menu.
    
  8. Use 64-bit: replace SELNAME with sel_getName

  9. Use 64-bit: use std::thread to avoid void* cast

  10. Use 64-bit: compiler/linker settings

  11. Use colored diagnostics for compiler output

  12. Use libc++: avoid incomplete types where needed

  13. Use libc++: don’t rely on implicit conversions

  14. Use libc++: update submodules

  15. Use libc++: replace typeof with decltype

  16. Use libc++: replace __gnu_cxx with std

  17. Use libc++: replace std::tr1 with std

  18. Use libc++: compiler/linker settings

Aug 26, 2012

  1. Use Cocoa instead of Carbon for popup menus

Aug 25, 2012

  1. Rename bundles::menu.cc to menu.mm

  2. fixup! ⌘+click a file browser icon to show in Finder

    Only attempt to show the item in Finder if it is a file
    
  3. Title case tab context menu items

  4. Bring back the dock menu

  5. Replace PNGs with resizable PDF template images

    Dennis Vennink authored
  6. Add gutterSelectionBorder and gutterIcons theme keys

    Dennis Vennink authored

Aug 26, 2012

  1. Fixed negative height bug in htmlOutputView

    After dragging the HTML Output window down below the bottom of the main
    window it cannot be dragged back and negative height of HTML Output is
    saved to file.
    
    Lukasz Czekaj authored

Aug 25, 2012

  1. Use gutter divider color for selection rectangle

    Adam Strzelecki authored

Aug 24, 2012

  1. New svn executable based Subversion scm driver

    * 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.
    
    Jeremy Whitlock authored

Aug 23, 2012

  1. Extend gutter theming to selection foreground

    New theme setting: gutterSelectionForeground
    
    David Howden authored
  2. Add scope attributes for Ant, CMake, Maven and Scons projects.

    Michael Sheets authored

Aug 22, 2012

  1. Added GitHub workflow info to README.md

    Gerd Knops authored
  2. Remember Bundle Editor column widths

    Gerd Knops authored
  3. BundleEditor: follow truncated names with ellipsis

    Gerd Knops authored
  4. Use cf::color_t RGBA constructor when converting color_info_t

Aug 21, 2012

  1. File Browser will now remember it's width

    This closes issue #5.
    
    Gerd Knops authored

Aug 22, 2012

  1. Extend support for theming the gutter

    New theme setting: gutterSelectionBackground
    
    David Howden authored

Aug 21, 2012

  1. Use URL-based (modern?) NSWorkspace method

  2. ⌘+click a file browser icon to show in Finder

  3. Prevent horizontal scrolling of search results

  4. Clean up find results view positioning

    The left and right borders are no longer visible, so the results are flush with the edges of the find window.
    

Aug 22, 2012

  1. Added Retina icons for bottom bar and file browser

    As all the icons have been remade some of them should look better on non-retina also.
    
    This closes issue #42.
    
    Paul Wilde authored

Aug 21, 2012

  1. Community effort to redesign and retinafy the gutter icons.

    Dennis Vennink authored

Aug 19, 2012

  1. Calculate default gutter colors based on theme

  2. Store component values in cf::color_t

  3. Add support for theming the gutter

    Theme setting keys gutterForeground, gutterBackground, and gutterDivider
    

Aug 18, 2012

  1. Refactor theme selection to pass through OakDocumentView

  2. Convert multipage tiffs back to 1x/2x pngs

Aug 19, 2012

  1. Retina assets for the "Bundle Editor" window

    Paul Wilde authored
  2. Retina assets for the "Find in Project" window

    Paul Wilde authored
  3. Retina assets for the "OakFileBrowser"

    Paul Wilde authored
  4. Retina tab assets

    Paul Wilde authored

Aug 18, 2012

  1. Include high resolution I-Beam cursor

    jtbandes authored
  2. Move border drawing to OakDocumentView

    This allows the border to appear properly when scrolling (with a multitouch device) bounces past the end of the content.
    
    jtbandes authored
  3. Fix bundle menu items' appearance in the Help menu

    jtbandes authored
  4. Bundle Editor: allow selection of disabled items

    Previously disabled items could not be selected, and hence not be re-enabled.
    
    Gerd Knops authored

Aug 16, 2012

  1. Fix trailing whitespace in text reformat

    On a ^Q text reformat, trailing whitespaces were not removed. Typically
    whitespace is typically considered undesirable.
    
    Damon McDougall authored
  2. Let the user resize bundle editor columns

    Elia Schito authored

Jul 7, 2012

  1. Represent font size using a CGFloat

    This applies to scoped font size settings and should be faster than the previous std::string based approach.
    

Jun 30, 2012

  1. Represent theme colors as 4 doubles (RGBA)

    This should be faster (and probably more precise) than the previous std::string based color manipulations.
    

Aug 15, 2012

  1. Updated Preferences icons for HiDPI displays.

    Paul Wilde authored
  2. When $builddir is relative path, pass absolute path to fixtures makefile.

    Adam Strzelecki authored

Aug 14, 2012

  1. Test all versions of clang for “new enough”

    Adam Strzelecki authored

Aug 15, 2012

  1. Updated chinese translation for terminal preference panel.

    Bo Xiao authored

Aug 13, 2012

  1. Initial commit of Simplified Chinese localization for xib files.

    Bo Xiao authored

Aug 14, 2012

  1. Improve tab trigger rendering

    This is using NSAttributedString’s NSTextTableBlocks:
    
    * Font is determined from current menu rather than hardcoded
    * Fixed: Invalid font size on bundle-item popup
    * Fixed: Both tab triggers and key equivalents can co exists on single menu item
    * No relayout calculations are needed after menu update (this is done automatically by NSLayoutManager when using NSTextTables)
    * Uses 10.5 compatible API
    
    Adam Strzelecki authored

Aug 13, 2012

  1. Bind Opt+F1 to show bundle item popup.

    Adam Strzelecki authored
  2. Check current grammar bundle in bundle item popup.

    Do not specify selected index explicitely, popup menu item with NSOnState gets selected by default.
    
    Adam Strzelecki authored
  3. Select popup menu item only on non-negative index.

    Adam Strzelecki authored
  4. Select current grammar at bundle item popup.

    Adam Strzelecki authored
  5. Remove bundles.h dependency, re-add menu action

    jtbandes authored
  6. fixup! Draw tab triggers and key equivalents in menu Fix memory leak

    fixup! Draw tab triggers and key equivalents in menu
    Fix memory leak
    jtbandes authored
  7. Draw tab triggers and key equivalents in menu

    The old techniques used to set key equivalents no longer work. Unfortunately, this technique is only a workaround and is not pixel-for-pixel identical due to the way NSMenuItem lays itself out when rendering a key equivalent; but I think it's the best that can be done for now.
    
    jtbandes authored
  8. Set a blank SDK path if the 10.7 SDK isn't found.

    This allows the project to build with the system default framework/include/library paths.
    
    Cody Krieger authored

Aug 12, 2012

  1. Fixed Grammar Mistake.

    Andrew Hobden authored
  2. Add bundle menu to the status bar

    Elia Schito authored
  3. Extract Bundle menu to a framework

    Elia Schito authored
  4. configure: exit with code != 0 on error

    Using this allows other software to check whether configure was
    successful.
    
    This patch is public domain.
    
    Clemens Lang authored
  5. git test: don't fail in unconfigured envs

    git commit fails when user.name and user.email aren't set. Unfortunately
    using git commit --author='Test Test <test@example.com>' doesn't work.
    
    This could happen in environments where pristine users are used to build
    software.
    
    This patch is public domain.
    
    Clemens Lang authored
  6. Changed Find/Replace combobox height to 21, to be aligned with other controls.

    Bo Xiao authored

Aug 11, 2012

  1. Use SecItemCopyMatching instead of the deprecated SecKeychainSearch

    jtbandes authored
  2. QLPreviewPanel is no longer private

    jtbandes authored
  3. Stop using deprecated NSSavePanel/NSOpenPanel methods

    jtbandes authored
  4. Use Security framework instead of deprecated OpenSSL functions

    jtbandes authored
  5. Helper function for getting CFError description

    jtbandes authored
  6. Fix xib warnings

    jtbandes authored
  7. Change deployment target of all xibs to OS X 10.7

    jtbandes authored
  8. Save all xibs with Xcode 4.4.1 (4F1003)

    jtbandes authored

Aug 12, 2012

  1. Updated IRC channel name in README.

    Only one octothorpe now.
    
    Tuk Bredsdorff authored

Aug 11, 2012

  1. Implement ⌃Y for yanking last deletion

    Nathaniel Tagg authored

Aug 9, 2012

  1. Add example textmate image to README

    It's a good looking editor, let's see a picture.
    
    jtmkrueger authored

Aug 11, 2012

  1. "Enter/Exit Full Screen" menu item

    "Full Screen Menu Item" template from Object Library in Interface
    Builder, with key binding removed
    
    Jesse B. Hannah authored
  2. Added fullscreen behavior to document window

    In Interface Builder: Attributes Inspector -> Full Screen -> Primary
    Window
    
    Jesse B. Hannah authored
  3. Keep window open after closing last tab. Fixes #24.

    When the last tab is closed the window will be kept open if the
    file browser is shown. It will close the existing document and
    replace it with a scratch document.
    

Aug 10, 2012

  1. Don’t write to /tmp in configure

    If another user (on the same system) builds TextMate then he blocks everyone else, as other users would be unable to overwrite /tmp/dummy.
    
    Fernando authored
  2. If opening an already open folder, bring window to front

    This is mainly for calling ‘mate «directory»’. Reference http://lists.macromates.com/textmate/2012-August/035164.html
    
    Adam Strzelecki authored

Aug 5, 2012

  1. Use current document when no URL given in txmt URL

    Brings TM2 in line with the promises in
    
    	http://manual.macromates.com/en/using_textmate_from_terminal.html
    
    Could probably be written nicer, I just don't get C++!
    
    Gerd Knops authored
  2. Opening txmt URLs with escaped spaces no longer fail

    Example: previously it was not possible to open a URL like
    
    	txmt://open?url=file:///Library/Keyboard%20Layouts/
    
    Gerd Knops authored
  3. git: show modifications in upstream folders

    Gerd Knops authored
  4. Rework path::is_local to support disk images.

    This enables SCM badges for disk images. The check is done using the new (10.7) kCFURLVolumeIsLocalKey.
    
    Gerd Knops authored
  5. Accept HTTP/1.1 response in network tests

    GlimmerBlocker (http://GlimmerBlocker.org) and other proxies may intercept the web data and replace the HTTP/1.0 response with a HTTP/1.1 response.
    
    Modified test to accept either.
    
    Gerd Knops authored

Jul 14, 2012

  1. Fix ^, previously it failed immediatly if last rule in scope selector, wasn't tested against last scope part. Fixed by giving ^ additional chances

  2. Fix bug with > in scope selector. There was an implicit > after path

Jul 13, 2012

  1. Add support for ^ $ and > in scope selectors

Aug 10, 2012

  1. ninja now back in trunk of brew

    https://github.com/mxcl/homebrew/commit/ff13af6fb37b378c9edb3a91fe3d6016c36661b5
    shadowbq authored
  2. Also check for boost in $CPATH

    This way it can be installed anywhere as long as the C compiler can find it.
    
    David Caldwell authored
  3. Update README.md

    youngrok authored
  4. Update .gitmodules to use Git over HTTP

Aug 9, 2012

  1. Update README.md

    burgua authored
  2. Update README.md

    In order to build from TextMate you also need
    to set the PATH variable.
    
  3. Fix links to ninja build system and Ninja Bundle

    Markdown syntax is not case sensitive for hyperlink tags, so use
    different tags for ninja, the build system, and Ninja, the TextMate
    Bundle.
    
  4. Hardcode Ruby scripts to use the Apple-provided version of MRI 1.8 since rdoc/usage is missing in 1.9