# Contributions

See commits at GitHub.

### Jan 6, 2021

1. Add syntax highlighting to readme

   e11848bb6e Browse code
   Zev Eisenberg authored January 6, 2021

### Jan 16, 2021

1. Set Preferences window toolbar style to NSWindowToolbarStylePreference …

       This is necessary when linking with the macOS 11.0 SDK.

   5168278b2a Browse code
   Ronald Wampler authored January 16, 2021

2. Prevent UTTypeConformsTo self-reference …

       Prevent public.shell-script from conforming to itself creating a loop, should conform to public.script.

       Reported by Thomas Tempelmann.

   c90a9bb329 Browse code
   Michael Sheets authored January 16, 2021

### Dec 11, 2020

1. Set the frame size via NSTitlebarAccessoryViewController's view property …

       When linking against the macos 11.0 SDK, the view size fails to update.

   a52383a099 Browse code
   Ronald Wampler authored December 11, 2020

### Jul 29, 2020

1. Add "Close Tabs to the Left" as alternate of "Close Tabs to the Right" …

       This is useful when working with one set of files in a project, then moving to another set without closing the original set first.

       Alternate menu items are pretty subtle, but there are already a lot of ways to close tabs, and I didn't want to clutter the menu further.

   ea09ac026b Browse code
   Jordan Rose authored July 29, 2020

### May 14, 2020

1. Fix crash in AboutWindowController when license owner is nil

   dde90fe4f5 Browse code
   Ronald Wampler authored May 14, 2020

### Apr 26, 2020

1. Fix Previous/Next Bookmark action in OakTextView touch bar …

       performNavigateBookMarksSegmentAction → performNavigateBookmarksSegmentAction

   18c1c1dfeb Browse code
   Ronald Wampler authored April 26, 2020

### Apr 7, 2020

1. Miscapitalization of Menu Items …

       `Jump to Next/Previous Mark` should be capitalized like `Jump to Next/Previous Bookmark`. Prepositions are generally not capitalized in title case.

   e62bbea182 Browse code
   Andreas authored April 7, 2020

### Feb 20, 2020

1. Syntactic Typo

   5a58f05a1a Browse code
   Andreas authored February 20, 2020

### Aug 26, 2019

1. Don't push to the parse stack for rules without while or end patterns

   ecca53d796 Browse code
   Max Brunsfeld authored August 26, 2019

### Sep 19, 2019

1. Update Changes.md …

       typo

   ad9229b591 Browse code
   Sam Oldak authored September 19, 2019

### Sep 1, 2019

1. Only allow navigating bookmarks in the touch bar …

       See https://lists.macromates.com/textmate/2019-August/041082.html

   4820e876d2 Browse code
   Ronald Wampler authored September 1, 2019

### Jul 8, 2019

1. Fix the background-size of the about window …

       Using background-size: 50% results in really bad scrolling performance and
       doesn't not achieve the effect of scaling the image to double the pixel density,
       it rather sets the image width to 50% of the element.

       Using the non-retina image size solves both the problems.

       A similar issue was found in this SO page: https://stackoverflow.com/a/7034772

   e9033911f0 Browse code
   Elia Schito authored July 8, 2019

### Jun 29, 2019

1. Add support for "Customize Touch Bar…" in MenuBuilder

   b71efb0065 Browse code
   Ronald Wampler authored June 29, 2019

### Oct 3, 2017

1. Allow customization of DocumentWindowController touch bar items

   b1fdd4377b Browse code
   Ronald Wampler authored October 3, 2017

2. Add accessibility support for DocumentWindowController's touch bar

   2294d369d0 Browse code
   Ronald Wampler authored October 3, 2017

### Oct 4, 2017

1. Add initial touch bar support for OakTextView …

       This adds buttons for inserting/removing bookmarks and navigate them.

       Since the function keys were replaced with the touch bar, there currently is no other way to set and navigate bookmarks other than these buttons so make their visibility priority high.

   d8db03c426 Browse code
   Ronald Wampler authored October 4, 2017

### Oct 3, 2017

1. Let DocumentWindowController's touch bar support nested touch bars

   d8b17a1f06 Browse code
   Ronald Wampler authored October 3, 2017

### Jun 16, 2019

1. Fix typo in character set name: ‘Korean – {ISO-2022-JP → ISO-2022-KR}’

   66c96b8393 Browse code
   DaeHyun Sung authored June 16, 2019

### Dec 25, 2018

1. Implement "Symbols" accessibility rotor …

       Accessibility rotors allow VoiceOver user to navigate content quickly
       by making possible navigation through select elements only.

       In this case, we enable VoiceOver users to navigate efficiently
       through symbols.

       The first way to invoke a rotor is a "global" one (does not take into
       account current position in text) and is invoked with VO-U. After
       pressing arrow left/right sufficient times to reach "Symbols", one is
       presented with a list analogical to the "Jump to symbols" TextMate
       feature invokable by Shift-Cmd-T. Arrow up and down then enable
       navigating through items, Return selects the result (and jumps to it),
       Esc cancels the interface without moving the cursor. Also filtering
       the list works by simply typing characters (implemented as
       case-insensitive substring search - consistent e.g. with Safari's
       "Headings" rotor).

       The second way to use a rotor is a "local" one (navigates w.r.t. the
       current position in text) and is typically done through Trackpad
       Commander (turned on by VO + two finger "screw" gesture to the right
       on the Trackpad). Then one uses two-finger "screw" gesture (like
       (un)screwing the bottle lid from/to the bottle with thumb and index
       finger) to select "Symbols". When this is finally selected (the
       selection is persistent), the user can then use flick with one finger
       up or down gestures to move to the previous/next occurrence respectively.

       I made a choice at one spot - I report the "symbol location - end of
       hardline" as the range of the symbol (that is e.g. what VoiceOver
       reads when navigating the elements). This seemed to work best for the
       user at least in the Objective-C code.

       The APIs are 10.13+ only, so appropriate avaiability declarations are
       put in place to not cause warnings from the compiler. I was not sure
       whether some declaration like that is needed also for the
       OakTextView's informal category's conformance to the
       `NSAccessibilityCustomRotorItemSearchDelegate` protocol - the protocol
       is 10.13+ only too, but the compiler does not warn about conforming to
       it. Perhaps the Objective-C runtime is smart enough to take into
       account that the `NSAccessibilityCustomRotorItemSearchDelegate` symbol
       is (hopefully) weakly-linked and adds conformance to it (I assume
       using the `class_addProtocol` function) only when it is non-nil. I
       have however not tested whether the compiled app actually degrades
       gracefully (without crashing) on macOS 10.12 and earlier, though (for
       starters, I seem not to have access to a macOS Sierra image to create
       a VM).

   85d3af94ba Browse code
   Boris Dušek authored December 25, 2018

### Jan 10, 2019

1. OakSyntaxFormatter: Clean up font attributes …

       See https://lists.macromates.com/textmate/2019-January/040883.html.

       The issue is caused by commit f850dbdbc772814372ad84f8740ea8234950cc5d, which added support for font style changes. It did so by applying a single font across the entire string. But, in some cases not all characters (e.g., Chinese or Japanese characters) may be available for that font so these characters would not be rendered correctly while editing.

   e0ddc61794 Browse code
   Ronald Wampler authored January 10, 2019

### Dec 6, 2018

1. Update link for Oniguruma official site …

       See https://github.com/kkos/oniguruma/issues/1.

   3eda80a87d Browse code
   Ronald Wampler authored December 6, 2018

2. Remove legal notice for XcodeEditor …

       The use of this framework was dropped in 4d82e4b109d353a565db3589138d7dcba3fa8fb6.

   1fabf6d5c4 Browse code
   Ronald Wampler authored December 6, 2018

### Dec 5, 2018

1. Check whether or not indexOfObject: returns NSNotFound

   85a11ba0bf Browse code
   Ronald Wampler authored December 5, 2018

### Nov 22, 2018

1. Refactor finder tags to use catalog colors …

       Also, reworked the OFBFinderTagsChooser to have a similar look as on 10.14.

   ca80254b80 Browse code
   Ronald Wampler authored November 22, 2018

### Dec 2, 2018

1. Use new convenience accessibility APIs in OakTextView.mm

   5ee17f2b0e Browse code
   Boris Dušek authored December 2, 2018

### Dec 1, 2018

1. Migrate OakTextView to new Accessibility API …

       macOS 10.10 SDK introduced new protocol-based accessibility APIs. The
       old accessibility APIs are now deprecated. These APIs require a
       minimum deployment target of 10.10, which is fulfilled since TextMate
       2.0 rc 12.

       Main changes connected with this new API is that it is statically
       typed, so it is no longer necessary to convert parameters from (and
       results to) NSValue objects.

       Still some of the weakly-typed original APIs are not deprecated and
       have no alternative in the new API, notably e.g. the
       accessibilityArray* methods, so they are kept.

   9ad976a4c0 Browse code
   Boris Dušek authored December 1, 2018

### Nov 14, 2018

1. Remove forward declarations for macOS 10.12 SDK …

       Although our minimum target is 10.10, we currently (dd41b992f70e66aac122e8a8479c65365d1375ab) only support compiling with Xcode 9, which has the macOS 10.13 SDK.

   9fe62089ef Browse code
   Ronald Wampler authored November 14, 2018

2. Add some more forward declarations for macOS 10.14 SDK

   a7339d3860 Browse code
   Ronald Wampler authored November 14, 2018

### Nov 13, 2018

1. Check the correct return value (-1) when item is not found

   444c17f7bf Browse code
   Ronald Wampler authored November 13, 2018

### Nov 2, 2018

1. Allow switching themes based on the effective appearance …

       The feature is currently not exposed via the UI.

       To enable set the changeThemeBasedOnAppearance defaults key to YES and assign the darkModeThemeUUID and universalThemeUUID default keys with the desired theme uuids to use in dark or light mode, respectively.

   cb5997717d Browse code
   Ronald Wampler authored November 2, 2018

2. Move theme relate methods out of the status bar delegate section

   d5c929dfaf Browse code
   Ronald Wampler authored November 2, 2018

### Nov 1, 2018

1. Use dynamic colors for the background and text in OakKeyEquivalentView

   3c56208329 Browse code
   Ronald Wampler authored November 1, 2018

### Oct 29, 2018

1. Guard against an empty string

   18c8d1685c Browse code
   Ronald Wampler authored October 29, 2018

### Oct 27, 2018

1. Selectively apply BG colors in OakSyntaxFormatter …

       OakSyntaxFormatter now applies background colors only when they do not match the theme's global background color. The old behavior drew the background all the time, which looked off when drawing formatted text in the Find History list. This effect is made especially apparent by macOS 10.14's translucent combo boxes, and now that they're used for history in the Find dialog, this needed to be fixed.

   9baff6d7e1 Browse code
   Ian Gregory authored October 27, 2018

### Oct 28, 2018

1. Change Select Previous/Next Tab key equivalents …

       ⌃⇧⇥ and ⌃⇥ are the preferred system wide shortcuts for changing tabs. In order to avoid a disruptive change, the previous shortcuts are still supported (in fact, it appears that all apps using the system tabbing mechanism support the previous shortcuts as well).

   05e61188ee Browse code
   Ronald Wampler authored October 28, 2018

2. Move "Select Previous Tab" above "Select Next Tab" …

       This makes the Window menu more consistent with system apps.

   14cd991a1d Browse code
   Ronald Wampler authored October 28, 2018

### Oct 20, 2018

1. Use a dynamic color for the dark divider style (10.14)

   b43abb13a6 Browse code
   Ronald Wampler authored October 20, 2018

### Oct 18, 2018

1. Add support for building Asset Catalogs …

       We compile all assets into one file that resides in the main app bundle so while we can have multiple asset catalogs (per Framework, etc.), individual assets should still be namespaced.

   62ee2f94be Browse code
   Ronald Wampler authored October 18, 2018

### Oct 20, 2018

1. Introduce overloads for the new divider styles …

       Also, switch to use the new divider styles in most places. The remaining usage of the old "OakCreateLine" functions are in the OakChooser windows. These will be refactor for better dark mode support next.

   e64b09b688 Browse code
   Ronald Wampler authored October 20, 2018

### Oct 18, 2018

1. OakBackgroundFillView: Introduce styles for light and dark dividers

   3b90855b98 Browse code
   Ronald Wampler authored October 18, 2018

### Oct 13, 2018

1. Use std::make_shared

   319872d6b0 Browse code
   Ronald Wampler authored October 13, 2018

2. Add virtual destructor …

       Detected by `Wdelete-non-virtual-dtor`.

   4d61c2a21d Browse code
   Ronald Wampler authored October 13, 2018

### Oct 10, 2018

1. Add virtual destructors for `buffer_api_t` and `layout_movement_t` …

       This suppresses the warning `Wdelete-non-virtual-dtor`. AFAICT, the existing usage isn't necessarily wrong (i.e., we don't delete through them) so another way to resolve the warning is to mark the classes that inherit from them, e.g., `buffer_t` as `final`.

   4aed5b4d9b Browse code
   Ronald Wampler authored October 10, 2018

2. Introduce `OAK_AVAILABLE` macro …

       Newer versions of clang now warn when using API's that are only available on OS version newer than the target OS unless they are guarded using `@available`.

       This is temporary and should be remove when we move away from older versions of Xcode.

   9049d995ed Browse code
   Ronald Wampler authored October 10, 2018

### Oct 8, 2018

1. Don't update our background style unless it changes …

       Also, always remove our background view before attempting to add another one.

   5aedfce3a1 Browse code
   Ronald Wampler authored October 8, 2018

### Oct 6, 2018

1. Let `LiveSearchView` inherit from `OakBackgroundFillView` …

       Also set the style to `OakBackgroundFillViewStyleHeader`.

   7938234060 Browse code
   Ronald Wampler authored October 6, 2018

2. OakBackgroundFillView: Add support of Mojave Dark mode …

       This introduces the `OakBackgroundFillViewStyle` enum with styles that are dark mode aware and should lead to more consistent use between UI elements in the future. Also, convert OTVStatusBar and OFBHeaderView to use the new style enum.

   9198c496b0 Browse code
   Ronald Wampler authored October 6, 2018

### Oct 3, 2018

1. Fix typo: 'therefor' → 'therefore'

   dfecd02e62 Browse code
   Ronald Wampler authored October 3, 2018

### Sep 6, 2018

1. Update README.md to use new location of Cap’n Proto

   6457f37267 Browse code
   Derek Linz authored September 6, 2018

### Aug 19, 2018

1. OakTabBarView: Support Dark mode (10.14)

   cf06fb3d94 Browse code
   Ronald Wampler authored August 19, 2018

2. Make "TabClose" images templates

   59e6cad9e0 Browse code
   Ronald Wampler authored August 19, 2018

3. Add OakTabBarView images for Dark mode (10.14)

   ffec68288c Browse code
   Ronald Wampler authored August 19, 2018

### Aug 17, 2018

1. Fix part of speech.

   3ba80810fc Browse code
   Zev Eisenberg authored August 17, 2018

### Jul 8, 2018

1. Fix what I assume are typos

   096801b8ad Browse code
   Ian Gregory authored July 8, 2018

2. Add excludeSCMDeleted to hide deleted files …

       New setting that prevents deleted files from appearing in the file browser while still uncommitted. There seems to be some demand for this (https://stackoverflow.com/questions/17590302/textmate-2-alpha-showing-references-for-deleted-files , https://stackoverflow.com/questions/50428259/how-can-i-keep-deleted-files-from-showing-up-in-textmate-2-file-browser-sidebar), and it's just a nice option to have.

   2a68a2be53 Browse code
   Ian Gregory authored July 8, 2018

### Apr 19, 2017

1. Add support for Finder tags instead of just one label color

   a31a985610 Browse code
   Ronald Wampler authored April 19, 2017

### Mar 30, 2017

1. Remove unnecessary forward declaration

   cec95ce601 Browse code
   Ronald Wampler authored March 30, 2017

### Apr 3, 2018

1. Always uppercase the encoding charset …

       Apple writes the encoding charset (e.g., com.apple.TextEncoding) in
       all lowercase (at least since macOS 10.9); however, TextMate assumes that the
       encoding will always be uppercase. So in order to avoid any issues with case
       mismatches, when setting the charset, uppercase the given string.

       See http://lists.macromates.com/textmate/2018-April/040602.html

   1b33f6e36d Browse code
   Ronald Wampler authored April 3, 2018

### Feb 7, 2018

1. Add imported and exported type declarations for D …

       This will make the system properly recognize D source files.

   e3ded6e2f9 Browse code
   Jacob Carlborg authored February 7, 2018

### Nov 11, 2017

1. Add ‘public.data’ to list of supported file types for QuickLook plug-in …

       This enables QuickLook preview for text files without extension such as README, LICENSE, etc.

   fd827fb817 Browse code
   Pravdomil authored November 11, 2017

### Feb 3, 2018

1. Mark strong properties as strong …

       Versions of the OS X 10.11 SDK prior to 10.11.4 require this to
       be done explicitly. This fixes the build on OS X 10.10 when
       using the OS X 10.11 SDK from Xcode 7.2.1 and earlier.

   bade4054dc Browse code
   Ryan Schmidt authored February 3, 2018

### Feb 1, 2018

1. Fix generation of contribution page …

       Modern multimarkdown tends to convert the <% and %> tags into HTML when they
       occur before or after an empty line. This would then break parsing with erb.
       Remove all empty lines in the vicinity of these tags to prevent this problem.

       Sent in by @neverpanic through @ryandesign

   0c8817e57a Browse code
   Michael Sheets authored February 1, 2018

### Oct 13, 2017

1. Handle rate-limiting when using GitHub’s API to obtain author emails

   108b99149c Browse code
   Paul Collins authored October 13, 2017

2. Create credits database file’s enclosing directory as necessary

   d00a5cd4a0 Browse code
   Paul Collins authored October 13, 2017

### Oct 4, 2017

1. Explicitly close OakChoiceMenu …

       On 10.13, just setting our instance of OakChoiceMenu to `nil` no longer seem to close our window.

   9f2eb76223 Browse code
   Ronald Wampler authored October 4, 2017

### Aug 24, 2017

1. Enable ThinLTO

   0a597f1505 Browse code
   Jason Gavris authored August 24, 2017

### Oct 3, 2017

1. Add capnp include path for C++/Objective-C++ files …

       This is needed after commit 2748e12699063dd92d0211d36b32ccf44a7bc103.

   71aa9764af Browse code
   Ronald Wampler authored October 3, 2017

2. Add basic touch-bar support

   9f1cec343e Browse code
   Jake Kirshner authored October 3, 2017

### Oct 2, 2017

1. Temporarily peg support at C++14 (10.13) …

       Building with c++1z support on the latest version of clang on High Sierra (10.13) causes a couple of runtime crashes.

   234e64dcfc Browse code
   Ronald Wampler authored October 2, 2017

2. Don't specify libc++ (10.9) …

       Since our minimum target is now 10.9, clang will default to use and link with libc++
       instead of libstdc++.

       This also reverts commit 162b3dee2c08fa235718f54852644548bec68d15.

   1fb9947d42 Browse code
   Ronald Wampler authored October 2, 2017

### Jun 23, 2017

1. Fix issues with redundant qualified names …

       Starting in Clang 5, lookup with nested-class names is stricter (e.g., A::A now specifically refers to the constructor name).

   c0fb320549 Browse code
   Ronald Wampler authored June 23, 2017

2. Change `std::vector< std::pair<char const*, char const*> >` to `auto` (C++17) …

       C++17 added a non-const overload for std::string::data().

   49cc123544 Browse code
   Ronald Wampler authored June 23, 2017

### Jun 8, 2017

1. Update deployment target to 10.9

   44a7e580d9 Browse code
   Ronald Wampler authored June 8, 2017

### Apr 26, 2017

1. Add "Copy As Pathname" to file browser's context menu …

       This is implemented as an alternate menu item to "Copy" like in Finder.

   08f41a37dc Browse code
   Ronald Wampler authored April 26, 2017

### Apr 21, 2017

1. Exclude SyntaxMate.tmBundle from from ⌘T / ⇧⌘F

   e1ed38959c Browse code
   Ronald Wampler authored April 21, 2017

### Apr 11, 2017

1. Resolve ambiguous autolayout issues …

       Most of these layout changes are related to the common pattern we used to set constraints for "dividers", where one of the dividers is specified to be connected to both edges of its superview then setting the other dividers' constraints to have equal widths (e.g., @"H:|[divider(==divider2,==divider3)]"). On 10.12, this now appears to result in ambiguous layout. We can resolve it by connecting at least one of the edges for each divider to its superview.

   f3cd0b0797 Browse code
   Ronald Wampler authored April 11, 2017

### Feb 1, 2017

1. Revert "Explicitly cast back to the CGEventFlags typedef" …

       This reverts commit 9e4e88ce76a334abe01f79e9d355623beac75831.

       CGEventFlags is (correctly) defined in the 10.12 sdk as:

          typedef CF_OPTIONS(uint64_t, CGEventFlags)

   a124b494c2 Browse code
   Ronald Wampler authored February 1, 2017

### Nov 22, 2016

1. Use the FSRef API directly and delete fsref_t (10.9) …

       The textClipping file is saved as a binary plist on 10.11 and 10.12 (I could not verify 10.10) so we can eventually replace the use of FSRef here as well.

   d1ecba2629 Browse code
   Ronald Wampler authored November 22, 2016

2. Use OakMoveToTrash instead of FSMoveObjectToTrashSync (10.9)

   a377b35bde Browse code
   Ronald Wampler authored November 22, 2016

3. Introduce OakMoveToTrash and make it accessible only to C++ …

       This is just a C++ wrapper around the Cocoa API for moving a file to trash.

   b9665fa44e Browse code
   Ronald Wampler authored November 22, 2016

4. Avoid use of NSRunInformationalAlertPanel (10.9) …

       Although this is actually deprecated in 10.10, new APIs are available in 10.9 and it will make addressing deprecation warnings when upgrading to 10.10 easier.

   b8143a626c Browse code
   Ronald Wampler authored November 22, 2016

5. Avoid use of NSRunCriticalAlertPanel (10.9) …

       Although this is actually deprecated in 10.10, new APIs are available in 10.9 and it will make addressing deprecation warnings when upgrading to 10.10 easier.

   07c29ff14c Browse code
   Ronald Wampler authored November 22, 2016

6. Avoid use of NSRunAlertPanel (10.9) …

       Although this is actually deprecated in 10.10, new APIs are available in 10.9 and it will make addressing deprecation warnings when upgrading to 10.10 easier.

   038acacca9 Browse code
   Ronald Wampler authored November 22, 2016

### Nov 21, 2016

1. Remove remaining 10.9 LEGACY markers

   903d34338d Browse code
   Ronald Wampler authored November 21, 2016

2. Use appropriate enum case for NSSavePanel and NSOpenPanel result (10.9)

   42654ff283 Browse code
   Ronald Wampler authored November 21, 2016

3. Update to modern sheet API (10.9)

   33167c8c52 Browse code
   Ronald Wampler authored November 21, 2016

4. Remove `OakShowSheetForWindow` wrapper (10.9) …

       Also removed `OakSheetCallbackDelegate` since it's no longer used now.

   043a00c934 Browse code
   Ronald Wampler authored November 21, 2016

5. Remove `OakShowAlertForWindow` wrapper (10.9)

   30891b1a62 Browse code
   Ronald Wampler authored November 21, 2016

6. Use our NSAlert category method for creating NSAlert objects

   dfc9db4413 Browse code
   Ronald Wampler authored November 21, 2016

7. Remove workaround for `trashItemAtURL:resultingItemURL:error` (10.9)

   9feef86b16 Browse code
   Ronald Wampler authored November 21, 2016

8. Update deployment target to 10.9 for all xib files

   9fae8a3192 Browse code
   Ronald Wampler authored November 21, 2016

9. Set minimum OS to 10.9

   fb2775b0a3 Browse code
   Ronald Wampler authored November 21, 2016

### Nov 5, 2016

1. SyntaxMate: XPC Service for third-party apps

   2156555057 Browse code
   Vadim Shpakovski authored November 5, 2016

### Feb 26, 2017

1. Treat *.target files as source.tm-properties

   a00f13f071 Browse code
   Martin Kühl authored February 26, 2017

### Dec 31, 2016

1. Update DocumentWindowController.mm …

       Fixed typo when comparing

   4b844e2769 Browse code
   Archuthan Vijayaratnam authored December 31, 2016

### Dec 13, 2016

1. Don't try to replace a folder with an item it contains

   6e28cea42c Browse code
   Ronald Wampler authored December 13, 2016

### Dec 6, 2016

1. Added ability to customize document’s title shown in tabs …

       To change the title, set `tabTitle` in `.tm_properties` to something other than `$TM_DISPLAYNAME`.

   d380e7ab0c Browse code
   Jake Kirshner authored December 6, 2016

### Dec 5, 2016

1. Stop exporting scan_path.h …

       This header was removed in commit 2ffbfe02a568a41283b2bd4e7a27a69fcbb03aa7.

   dedbc3fe4f Browse code
   Ronald Wampler authored December 5, 2016

### Nov 29, 2016

1. Ensure file is on disk before adding it to the Recent menu …

       This reimplements 9c3923b4854a9bf910c6a26531e77f2be8524aba, which was accidentally lost in refactoring.

   a499a1559d Browse code
   Ronald Wampler authored November 29, 2016

### 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

   e8c0488f24 Browse code
   René Schwaiger authored November 2, 2016

### Oct 30, 2016

1. Fix broken mercurial link

   68c1aa6cd0 Browse code
   Gabriele Farina authored October 30, 2016

### Oct 28, 2016

1. Use CFPropertyListWrite as CFPropertyListWriteToStream is deprecated

   926f702828 Browse code
   mathbunnyru authored October 28, 2016

### 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).

   440414f96c Browse code
   mathbunnyru authored October 21, 2016

### Oct 19, 2016

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

   d6db299a8f Browse code
   mathbunnyru authored October 19, 2016

### Oct 18, 2016

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

   5fb4c6850e Browse code
   Ronald Wampler authored October 18, 2016

2. Use oak::random_shuffle instead of std::random_shuffle …

       The latter is deprecated in C++14 and will be removed in C++17

   4a7e774196 Browse code
   Ronald Wampler authored October 18, 2016

3. Add oak::random_shuffle algorithm

   a5323b4f77 Browse code
   Ronald Wampler authored October 18, 2016

4. Add `random` header as a precompiled header

   1f84a3d09f Browse code
   Ronald Wampler authored October 18, 2016

### Oct 19, 2016

1. Fixed memory leak

   1b4adf29e1 Browse code
   mathbunnyru authored October 19, 2016

### Oct 18, 2016

1. Slight perfomance improvements

   284b5a3896 Browse code
   mathbunnyru authored October 18, 2016

### Oct 17, 2016

1. Deleted unused variables

   9632a8d804 Browse code
   mathbunnyru authored October 17, 2016

2. static_cast instead of c-style cast

   08ad760d5e Browse code
   mathbunnyru authored October 17, 2016

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

   0b034f9a9d Browse code
   mathbunnyru authored October 17, 2016

### Oct 10, 2016

1. Opt out of automatic window tabbing (10.12)

   ec9bd3a002 Browse code
   Ronald Wampler authored October 10, 2016

### Sep 21, 2016

1. Make OakPopOutAnimation window a child of the main window

   f36ce366f4 Browse code
   Jacob Bandes-Storch authored September 21, 2016

### 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.

   f38eaa5315 Browse code
   Ronald Wampler authored September 13, 2016

### 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.

   1658d6356a Browse code
   Ronald Wampler authored June 20, 2016

### Sep 12, 2016

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

   d6652ff4e8 Browse code
   Jacob Bandes-Storch authored September 12, 2016

2. fixup! Only set table view’s row height during sizeToFit …

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

   9c8caa21ec Browse code
   Ronald Wampler authored September 12, 2016

### Sep 11, 2016

1. Tweaks to pop-out animation

   877eabb28c Browse code
   Jacob Bandes-Storch authored September 11, 2016

2. Minor visual tweaks to OakPasteboardSelector

   d16cd01f67 Browse code
   Jacob Bandes-Storch authored September 11, 2016

### Sep 10, 2016

1. Update visual style of OakChooser matches

   f7c11c2436 Browse code
   Jacob Bandes-Storch authored September 10, 2016

2. Fix the Find window status bar font

   b3e1e3bf0f Browse code
   Jacob Bandes-Storch authored September 10, 2016

3. Highlight the selection again when it’s the only find result …

       This more closely matches the behavior of NSTextView.

   73330e29db Browse code
   Jacob Bandes-Storch authored September 10, 2016

4. Add “Check for Updates” to the app menu …

       Another common practice among Mac apps.

   7c325ff90b Browse code
   Jacob Bandes-Storch authored September 10, 2016

5. Use yellow background and underline for project find results …

       This style is a de facto standard across a handful of popular Mac apps.

   e0a49637f9 Browse code
   Jacob Bandes-Storch authored September 10, 2016

### 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.

   7ec00a5bea Browse code
   Jacob Bandes-Storch authored September 9, 2016

### 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.

   0c71b54a9e Browse code
   Ronald Wampler authored September 8, 2016

### Sep 7, 2016

1. Fix clipping during pop-out animation

   b4736005f4 Browse code
   Jacob Bandes-Storch authored September 7, 2016

### Sep 4, 2016

1. Add bundle editor menu item to copy item UUID

   52b43f17ed Browse code
   Jacob Bandes-Storch authored September 4, 2016

### Sep 1, 2016

1. Update link to Ninja

   b496ffc787 Browse code
   Morton Fox authored September 1, 2016

### Aug 31, 2016

1. Enable bundle editor window’s document icon

   1e440b3f99 Browse code
   Jacob Bandes-Storch authored August 31, 2016

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.

   06ba9b6dab Browse code
   Ronald Wampler authored August 31, 2016

### Aug 28, 2016

1. Use Core Animation for find indicator

   dd3ebefe3f Browse code
   Jacob Bandes-Storch authored August 28, 2016

### 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.

   f59c445bc8 Browse code
   Ronald Wampler authored August 30, 2016

2. Allow setting font for OakChoiceMenu to match our text view

   c270b0c5af Browse code
   Ronald Wampler authored August 30, 2016

### 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`).

   860da518cb Browse code
   Ronald Wampler authored August 16, 2016

### 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.

   4c1f8a18fb Browse code
   Ronald Wampler authored July 20, 2016

### 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.

   e50dc57db0 Browse code
   Ronald Wampler authored July 13, 2016

### Jul 12, 2016

1. Refactor ODBEditorSuite to avoid FSRef API (10.8)

   fa9ceead09 Browse code
   Ronald Wampler authored July 12, 2016

### 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).

   69b7b8ee42 Browse code
   Ronald Wampler authored July 6, 2016

### Jun 22, 2016

1. Update deployment target to 10.8

   4de647c664 Browse code
   Ronald Wampler authored June 22, 2016

2. Save with Version 7.3.1 (7D1014)

   727b5da153 Browse code
   Ronald Wampler authored June 22, 2016

### 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.

   9337b12616 Browse code
   Ronald Wampler authored June 20, 2016

### Jun 18, 2016

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

   7e3497889e Browse code
   Ronald Wampler authored June 18, 2016

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

   1a1c3ecd38 Browse code
   Ronald Wampler authored June 18, 2016

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

   5bb89898fb Browse code
   Ronald Wampler authored June 18, 2016

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:`).

   e452a5ee55 Browse code
   Ronald Wampler authored June 18, 2016

5. Read the gutter fontName from user defaults …

       defaults to textView fontName

   91befc271b Browse code
   Mike Meyer authored June 18, 2016

### 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.

   976a79468b Browse code
   Ronald Wampler authored April 20, 2016

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.

   accb60033e Browse code
   Ronald Wampler authored April 20, 2016

### 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)

   162b3dee2c Browse code
   Ronald Wampler authored June 14, 2016

2. Don't link network framework with crypto

   2ffc48fda9 Browse code
   Ronald Wampler authored June 14, 2016

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

   2dbde1673b Browse code
   Ronald Wampler authored June 14, 2016

### 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.

   aba1eb42ac Browse code
   Adam Strzelecki authored May 31, 2016

### 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`.

   263da53c81 Browse code
   Josh Bernitt authored April 24, 2016

### Apr 27, 2016

1. Add font size selection to print dialog

   c5d7aa112d Browse code
   Per Persson authored April 27, 2016

### Apr 10, 2016

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

   34fa11ab3d Browse code
   Orta Therox authored April 10, 2016

### 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.

   2dd825515e Browse code
   Brian T. Kelley authored December 30, 2015

### Feb 1, 2016

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

   18a79d3a3c Browse code
   Ronald Wampler authored February 1, 2016

### Jan 29, 2016

1. Add menu items to allow navigating to arbitrary marks

   04af5fa295 Browse code
   Ronald Wampler authored January 29, 2016

### 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.

   87df09684f Browse code
   Ronald Wampler authored February 2, 2016

### 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).

   272f691163 Browse code
   Adam Strzelecki authored January 2, 2016

2. Settings: Empty string should be serialized as '' …

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

   83653f7b89 Browse code
   Adam Strzelecki authored January 2, 2016

### 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/}'

   e59db8375f Browse code
   Adam Strzelecki authored December 28, 2015

### 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.

   9c3923b485 Browse code
   Ronald Wampler authored January 27, 2016

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.

   041967d547 Browse code
   Vincent Bénony authored January 27, 2016

### Jan 4, 2016

1. Build with Travis

   a7d069fb40 Browse code
   Martin Kühl authored January 4, 2016

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

   597a49015d Browse code
   Martin Kühl authored January 4, 2016

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.

   bbced5c3f3 Browse code
   Martin Kühl authored January 4, 2016

### 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.

   5960f139a0 Browse code
   Martin Kühl authored January 15, 2016

### 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.

   d988cf18c2 Browse code
   Jacob Carlborg authored October 27, 2015

### 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.

   cc7e2e8322 Browse code
   Jacob Carlborg authored October 25, 2015

### 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.

   00a20aefb6 Browse code
   Ronald Wampler authored October 14, 2015

### Oct 10, 2015

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

   b06f20ca72 Browse code
   Michael Sheets authored October 10, 2015

### 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.

   054747974b Browse code
   Ronald Wampler authored October 2, 2015

### Oct 1, 2015

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

       We no longer use Apple's headers for `openssl` so this isn't necessary.

   a23b5225b1 Browse code
   Ronald Wampler authored October 1, 2015

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.

   5bbcf42487 Browse code
   Ronald Wampler authored October 1, 2015

### Sep 24, 2015

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

   acd4497f5e Browse code
   Ram Nadella authored September 24, 2015

### 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.

   3f5575cfe4 Browse code
   Ronald Wampler authored September 19, 2015

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.

   75d3c74f05 Browse code
   Ronald Wampler authored September 19, 2015

3. Declare new protocols when building for 10.11 …

       These were informal protocols prior to 10.11.

   f29ddf6500 Browse code
   Ronald Wampler authored September 19, 2015

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.

   9e4e88ce76 Browse code
   Ronald Wampler authored September 19, 2015

### Aug 6, 2015

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

       Also, disable unknown-pragmas warning for older version of clang.

   2c6ad9b391 Browse code
   Ronald Wampler authored August 6, 2015

2. Move OakFlagState enum declaration out of method …

       Also, changed the `newFlagState` property to use the enum type.

   ac56d6e896 Browse code
   Ronald Wampler authored August 6, 2015

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.

   14c6a70b85 Browse code
   Ronald Wampler authored August 6, 2015

4. Introduce tls_ptr_t …

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

   f3d1abaeca Browse code
   Ronald Wampler authored August 6, 2015

### Apr 8, 2015

1. Use dense_hash_map for style cache

   70893f4583 Browse code
   Joachim Mårtensson authored April 8, 2015

### Feb 27, 2015

1. Update install instructions

   b7a1011f96 Browse code
   Joachim Mårtensson authored February 27, 2015

2. Setup Google's sparsehash library for use

   71960834ba Browse code
   Joachim Mårtensson authored February 27, 2015

### Apr 8, 2015

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

   f7dd4c0ace Browse code
   Joachim Mårtensson authored April 8, 2015

### 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.

   d7121673ba Browse code
   Ronald Wampler authored April 22, 2015

2. Use std::abs instead of abs() …

       This suppresses a couple of warnings with the latest version of clang shipped with Xcode 6.3.

   4aff7098a5 Browse code
   Ronald Wampler authored April 22, 2015

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.

   172ce9d428 Browse code
   Ronald Wampler authored April 22, 2015

### 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.

   23509380cb Browse code
   Alexander Böhn / FI$H2k authored April 12, 2015

### Apr 8, 2015

1. Fix t_bump_date timezone

   f9e8192d00 Browse code
   Jason Gavris authored April 8, 2015

### Mar 31, 2015

1. Moving a comma that seems misplaced

   9d517741ef Browse code
   Waynn Lue authored March 31, 2015

### 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.

   5a1754bc01 Browse code
   Yuu Q authored March 28, 2015

### Mar 24, 2015

1. Fix typo, delsyedPlaySound => delayedPlaySound

   6aa81a0eb9 Browse code
   Koen Punt authored March 24, 2015

### Mar 22, 2015

1. Add NSOtherMouseUp to OakIsAlternateKeyOrMouseEvent …

       To allow the alternate behavior (“close other”) when clicking a tab with the middle mouse button.

   808aaabc44 Browse code
   Koen Punt authored March 22, 2015

2. Allow closing tabs on “other” (middle) mouse button

   436068cbb7 Browse code
   Koen Punt authored March 22, 2015

### 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]`.

   f2d8598b06 Browse code
   Adam Strzelecki authored February 27, 2015

2. Remove browser header shadow & bold on Yosemite …

       This applies to tabs above document case.

   6136e1d607 Browse code
   Adam Strzelecki authored February 27, 2015

3. Use black text color selected tab on Yosemite …

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

   0ca21f9c75 Browse code
   Adam Strzelecki authored February 27, 2015

### 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.

   438f110dc9 Browse code
   Ronald Wampler authored February 7, 2015

### 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`.

   130d7615d2 Browse code
   Ronald Wampler authored January 30, 2015

2. Mark local variable as const

   566cba3b44 Browse code
   Ronald Wampler authored January 30, 2015

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.

   a9e48c01e6 Browse code
   Ronald Wampler authored January 30, 2015

### Dec 25, 2014

1. Allow opening favorites at startup and re-activation …

       This is enabled via the ‘showFavoritesInsteadOfUntitled’ defaults key.

   71a2c2dfa8 Browse code
   Anton authored December 25, 2014

### 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.

   2c3ce33cbe Browse code
   Ronald Wampler authored December 5, 2014

2. Make `scm_enabled_for_path` API public

   7b92302aaf Browse code
   Ronald Wampler authored December 5, 2014

### 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.

   068ee34af8 Browse code
   Ronald Wampler authored December 8, 2014

2. Do not export TM_SCM_BRANCH …

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

   26523883f3 Browse code
   Ronald Wampler authored December 8, 2014

### 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

   7774be0718 Browse code
   Boris Dušek authored November 26, 2014

2. Track close button in a property of file cell view

   d786053406 Browse code
   Boris Dušek authored November 26, 2014

### Nov 24, 2014

1. Update mate usage information for setting marks

   5841528b23 Browse code
   Ronald Wampler authored November 24, 2014

2. Fix typo in local variable name

   5b8cc64d68 Browse code
   Ronald Wampler authored November 24, 2014

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).

   9003932ca4 Browse code
   Ronald Wampler authored November 24, 2014

### Nov 15, 2014

1. Use template icon for .twig files

   d458e7604a Browse code
   Michael Sheets authored November 15, 2014

### Nov 10, 2014

1. fixup! Remove NSString `existAtPath` category method

   67184816be Browse code
   Ronald Wampler authored November 10, 2014

### 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.

   c0a0b2e2fd Browse code
   Ronald Wampler authored July 21, 2014

2. Remove unused includes

   f0c7a2f564 Browse code
   Ronald Wampler authored July 21, 2014

3. Code style fixes

   9a898fe852 Browse code
   Ronald Wampler authored July 21, 2014

4. Remove NSString `existAtPath` category method …

       Also rename NSString category from "Path" to "Additions".

   c1b73ac9c0 Browse code
   Ronald Wampler authored July 21, 2014

5. Remove NSString `isDirectory` category method

   ecd3280a4a Browse code
   Ronald Wampler authored July 21, 2014

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.

   d3f295b15b Browse code
   Ronald Wampler authored July 21, 2014

### 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.

   b9b9a7fa54 Browse code
   Ronald Wampler authored October 28, 2014

2. Disable toggle button in the commit window when animating

   b9b6ecf025 Browse code
   Ronald Wampler authored October 28, 2014

3. Rename `populateTableView` to `setupArrayController` …

       With the previous refactoring the new name is more appropriate.

   c4f7b38882 Browse code
   Ronald Wampler authored October 28, 2014

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.

   12f964c3fa Browse code
   Ronald Wampler authored October 28, 2014

### Oct 7, 2014

1. Switch to programmatic CWTableCellView

   986b9f54af Browse code
   Ronald Wampler authored October 7, 2014

2. Don't use deprecated mate API

   8902ccf4fe Browse code
   Ronald Wampler authored October 7, 2014

### 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).

   7ae4b29421 Browse code
   Ronald Wampler authored September 29, 2014

2. Set path for the commit window document …

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

   8fd1e1088d Browse code
   Ronald Wampler authored September 29, 2014

### 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.

   be79c92580 Browse code
   Boris Dušek authored August 28, 2014

### 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.

   5494f7c802 Browse code
   Ryan Goulden authored October 18, 2013

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.

   f353831e85 Browse code
   Ryan Goulden authored October 18, 2013

### 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.

   b137014777 Browse code
   Adam Strzelecki authored September 28, 2014

### 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.

   a627991ac3 Browse code
   Ronald Wampler authored September 24, 2014

### Aug 3, 2014

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

   d60c47ef42 Browse code
   Ronald Wampler authored August 3, 2014

### 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.

   0361afe340 Browse code
   Ronald Wampler authored July 29, 2014

2. Send diffs to a separate window

   4b31a3fde0 Browse code
   Ronald Wampler authored July 29, 2014

### 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

   afb504b58d Browse code
   Boris Dušek authored August 22, 2014

### Jul 31, 2014

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

   d7e9b3a41d Browse code
   Boris Dušek authored July 31, 2014

### Aug 14, 2014

1. Use proper deallocator for SecKeychainItemCopyAttributesAndData …

       This was found using clang's static analyzer.

   df38101798 Browse code
   Ronald Wampler authored August 14, 2014

### 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.

   22cec6bb6b Browse code
   Ronald Wampler authored August 9, 2014

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.

   57f662c551 Browse code
   Ronald Wampler authored August 9, 2014

### Jul 30, 2014

1. Use dictionary literals

   3934f1be46 Browse code
   Ronald Wampler authored July 30, 2014

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.

   dab45a5c08 Browse code
   Ronald Wampler authored July 30, 2014

### Jul 29, 2014

1. Retrieve the sheet delegate if present in main window

   9fece6576c Browse code
   Ronald Wampler authored July 29, 2014

### 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

   17128edfc1 Browse code
   Zete Lui authored August 2, 2014

2. Remove compiler error

   2eaa97b1dc Browse code
   Joachim Mårtensson authored August 2, 2014

3. Add Ruby 2.0 support for build scripts

   2df7620b8d Browse code
   Joachim Mårtensson authored August 2, 2014

### 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.

   98dfefb5e0 Browse code
   Steven Clukey authored July 11, 2014

### 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.

   e0c6e14de0 Browse code
   Steven Clukey authored May 24, 2014

### Jul 30, 2014

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

   a52fc3493b Browse code
   Etienne Samson authored July 30, 2014

### 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.

   ae373343c1 Browse code
   Boris Dušek authored July 15, 2014

### 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.

   279ac58bf4 Browse code
   Boris Dušek authored July 13, 2014

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.

   2d554bd7bc Browse code
   Boris Dušek authored July 13, 2014

### 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`

   f3b6c07bfb Browse code
   Jeremy Whitlock authored July 27, 2014

### Jul 11, 2014

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

   8dbeabca23 Browse code
   Nyx0uf authored July 11, 2014

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.

   48ede9952b Browse code
   Nyx0uf authored July 11, 2014

### 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.

   3f716c27ad Browse code
   Nyx0uf authored July 10, 2014

### Jul 22, 2014

1. Adding some 2012 committers.

   6172d9ae8f Browse code
   Brad Choate authored July 22, 2014

2. Support a "--warn" switch for gen_html. …

       Default is to suppress any warnings for unassociated GitHub profiles.

   e94408b0c4 Browse code
   Brad Choate authored July 22, 2014

### 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.

   d2b3610059 Browse code
   Ronald Wampler authored July 13, 2014

2. VariablesPreference: Disable delete button when table is empty

   ad37b94e3f Browse code
   Ronald Wampler authored July 13, 2014

### 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.

   7e01bab12a Browse code
   Boris Dušek authored July 12, 2014

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.

   17c5df94ca Browse code
   Boris Dušek authored July 12, 2014

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

   e08a40a507 Browse code
   Boris Dušek authored July 12, 2014

### Jul 2, 2014

1. Add search field to Bundle preference pane

   cc64b1e24f Browse code
   Ronald Wampler authored July 2, 2014

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.

   8f50838b25 Browse code
   Ronald Wampler authored July 2, 2014

### Jul 1, 2014

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

   a2690f9418 Browse code
   Ronald Wampler authored July 1, 2014

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.

   9812748a07 Browse code
   Ronald Wampler authored July 1, 2014

3. Save BundlePreferences.xib with Xcode 5.1.1 (5B1008)

   360443682d Browse code
   Ronald Wampler authored July 1, 2014

### 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.

   eea001f5d5 Browse code
   Boris Dušek authored June 29, 2014

2. Add contributor emails …

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

   320c3ec23a Browse code
   Boris Dušek authored June 29, 2014

### 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.

   900ee1f523 Browse code
   Boris Dušek authored June 22, 2014

2. Tune tab label inset shadow …

       Now it matches more way other OSX elements are inset both on Retina and
       non-Retina displays.

   59a699c078 Browse code
   Adam Strzelecki authored June 22, 2014

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.

   56cfc1a3e0 Browse code
   Adam Strzelecki authored June 22, 2014

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.

   2ef711ad97 Browse code
   Adam Strzelecki authored June 22, 2014

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.

   53943e4409 Browse code
   Adam Strzelecki authored June 22, 2014

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.

   72bb6e6eb6 Browse code
   Boris Dušek authored June 22, 2014

### Jun 19, 2014

1. Use document icons in overflow menu

   6dd2dc1c5e Browse code
   Ronald Wampler authored June 19, 2014

2. OakTabBarView datasource now sends the unabbreviated path

   2dbd0d601f Browse code
   Ronald Wampler authored June 19, 2014

### Jun 7, 2014

1. Adjust click target for tab overflow button

   c5d801cca9 Browse code
   Ronald Wampler authored June 7, 2014

2. Add effect when the tab overflow button is clicked

   28e58bf4a4 Browse code
   Ronald Wampler authored June 7, 2014

3. Adjust appearance of the TabOverflow image

   673f5a4b73 Browse code
   Ronald Wampler authored June 7, 2014

### Jun 3, 2014

1. Add Retina asset for TabOverflow

   0b3cf27cfd Browse code
   Ronald Wampler authored June 3, 2014

### Apr 29, 2014

1. Indent menu items in `tabSizeMenu` …

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

   4c973385a8 Browse code
   Ronald Wampler authored April 29, 2014

### 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).

   fc5dcf4020 Browse code
   Ronald Wampler authored April 20, 2014

### 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".

   d9f4fae635 Browse code
   Ronald Wampler authored April 29, 2014

2. Remove duplication of find_tags enumeration

   3ed4722a80 Browse code
   Ronald Wampler authored April 29, 2014

### Apr 10, 2014

1. fixup! Allow user to clear previous commit messages

   196f37729f Browse code
   Ronald Wampler authored April 10, 2014

### 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.

   b942455d8f Browse code
   Ronald Wampler authored April 9, 2014

### Apr 4, 2014

1. Use NSAccessibilityUnignoredDescendant to streamline code

   44a803fe7c Browse code
   Boris Dušek authored April 4, 2014

2. Add '+initialize' guard …

       Per https://www.mikeash.com/pyblog/friday-qa-2009-05-22-objective-c-class-loading-and-initialization.html

   3e2df29076 Browse code
   Boris Dušek authored April 4, 2014

3. Cleaner disabling of image view accessibility.

   07e253f3bb Browse code
   Boris Dušek authored April 4, 2014

### 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.

   16330d039e Browse code
   Ronald Wampler authored April 3, 2014

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.

   32ef9c8d67 Browse code
   Ronald Wampler authored April 3, 2014

3. We use camelCase for local variables

   0ce77e8de7 Browse code
   Ronald Wampler authored April 3, 2014

### 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).

   201f247b2f Browse code
   Ronald Wampler authored March 17, 2014

### Mar 20, 2014

1. Export TM_SCM_NAME and TM_SCM_BRANCH …

       This will be used by OakCommitWindow.

       Also removed extraneous whitespaces.

   960b41297b Browse code
   Ronald Wampler authored March 20, 2014

### 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)

   073e97ffd7 Browse code
   duanemoody authored April 2, 2014

### Mar 31, 2014

1. Add my work email as contributor address

   c3088da9a5 Browse code
   Boris Dušek authored March 31, 2014

2. Use UI creation functions for accessibility in status bar

   3c853dfa5e Browse code
   Boris Dušek authored March 31, 2014

3. Add accessibility labels to Find dialog

   f48216a0f1 Browse code
   Boris Dušek authored March 31, 2014

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.

   896ad73ee8 Browse code
   Boris Dušek authored March 31, 2014

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.

   b80d60db57 Browse code
   Boris Dušek authored March 31, 2014

### 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.

   f45cb07d52 Browse code
   Ronald Wampler authored March 25, 2014

### 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.

   54d0903c2f Browse code
   Reza Mohammadi authored March 15, 2014

### 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.

   129cc2749d Browse code
   Boris Dušek authored March 8, 2014

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.

   36b1ec4fa0 Browse code
   Boris Dušek authored March 8, 2014

### Feb 12, 2014

1. Fix typo in contacts usage description

   f99cf4bbdd Browse code
   Ronald Wampler authored February 12, 2014

### Feb 8, 2014

1. refactor duplicate folding code into one method

   0d0ee4c51c Browse code
   Joachim Mårtensson authored February 8, 2014

### 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.

   a88f9baf5f Browse code
   Torsten Trautwein authored January 20, 2014

2. Saved with Xcode 5.0.2 (5A3005)

   5048ecc9b0 Browse code
   Torsten Trautwein authored January 20, 2014

### 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.

   875a470cc1 Browse code
   Adam Strzelecki authored January 8, 2014

### Dec 29, 2013

1. Note that capnp is now brew installable

   21b5b27e65 Browse code
   Aria Stewart authored December 29, 2013

### Dec 27, 2013

1. Show git conflicts with priority

   78f3584bad Browse code
   Gerd Knops authored December 27, 2013

### 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.

   54de23f940 Browse code
   Ronald Wampler authored December 22, 2013

2. Use new safeObjectAtIndex method …

       Also removed the static SafeObjectAtIndex mehtod in OakTabBarView

   1f61b628b3 Browse code
   Ronald Wampler authored December 22, 2013

3. Add safeObjectAtIndex to NSArray …

       This is defined in OakTabBarView as a static method, but it could be useful elsewhere.

   8711228f9a Browse code
   Ronald Wampler authored December 22, 2013

4. Remove unneccessary #import statements

   2f39a8c012 Browse code
   Ronald Wampler authored December 22, 2013

### 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.

   2a6b37c1a3 Browse code
   Adam Strzelecki authored December 2, 2013

### 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.

   e5841fe34f Browse code
   Ronald Wampler authored November 24, 2013

### Nov 18, 2013

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

   deba175fa5 Browse code
   Charlie Park authored November 18, 2013

### Nov 10, 2013

1. Support getting AXVisibleCharacterRange accessibility attribute

   22a5dc1413 Browse code
   Boris Dušek authored November 10, 2013

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).

   c7fbcf06ed Browse code
   Boris Dušek authored November 10, 2013

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.

   9f68cb416c Browse code
   Boris Dušek authored November 10, 2013

4. Provide conversions between softlines and buffer positions

   e0298cf29c Browse code
   Boris Dušek authored November 10, 2013

5. Track softline count in layout

   b8cad485d9 Browse code
   Boris Dušek authored November 10, 2013

### 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.

   5dcca0996c Browse code
   Boris Dušek authored October 20, 2013

### 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 :-)

   98590586bd Browse code
   Boris Dušek authored November 12, 2013

### 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.

   882597f9ab Browse code
   Michael Sheets authored October 31, 2013

### Oct 23, 2013

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

       TextMate's, not TextMates.

   b1fe3b7561 Browse code
   Shane Becker authored October 23, 2013

### Oct 10, 2013

1. Always recommend plain text when opening files.

   3548028a65 Browse code
   Ryan Goulden authored October 10, 2013

2. Allow sorting bundles by installed

   52e6b326c4 Browse code
   Ryan Goulden authored October 10, 2013

### 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].

   bbe1ca357b Browse code
   Steven Clukey authored September 8, 2013

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).

   49c949d65e Browse code
   Steven Clukey authored September 8, 2013

3. Added spaces as an invisible

   8cea97aeca Browse code
   Steven Clukey authored September 8, 2013

### Sep 12, 2013

1. Add icon definitions to CFBundleDocumentTypes …

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

   683ccd3ab2 Browse code
   Michael Sheets authored September 12, 2013

### 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. :-)

   21088105a8 Browse code
   Boris Dušek authored September 8, 2013

### 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.

   08b0b5ba0b Browse code
   Ronald Wampler authored September 3, 2013

### Sep 5, 2013

1. Use std::atomic family

   ca98e2f86d Browse code
   Joachim Mårtensson authored September 5, 2013

### 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.

   de21c812a9 Browse code
   Adam Strzelecki authored September 3, 2013

### 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.

   b0b182e2e1 Browse code
   Adam Strzelecki authored September 2, 2013

2. Reduce text overlap when showing context menu

   6997fb820e Browse code
   Adam Strzelecki authored September 2, 2013

3. Add Show Next for quick spelling iteration …

       Also add key equivalents to spell popup menu.

   cc137f3c24 Browse code
   Adam Strzelecki authored September 2, 2013

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

   6c6316573f Browse code
   Adam Strzelecki authored September 2, 2013

### 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.

   c1bdbfa975 Browse code
   Michael Sheets authored September 3, 2013

### 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

   e631068c56 Browse code
   Ronald Wampler authored August 5, 2013

### Aug 27, 2013

1. Fixed typo

   283ecd069e Browse code
   Shelby Munsch authored August 27, 2013

### Aug 21, 2013

1. Stop Find window showing an NSSavePanel on ⌘S

   1faaf77d99 Browse code
   David Howden authored August 21, 2013

### Jul 26, 2013

1. Add Quick Look generator …

       Closes #1062

   17e822896e Browse code
   Jacob Bandes-Storch authored July 26, 2013

### 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.

   847bef3bdd Browse code
   Jacob Bandes-Storch authored July 27, 2013

### Jul 28, 2013

1. Add usernames for missing GitHub email addresses

   5a7bd6c914 Browse code
   Jacob Bandes-Storch authored July 28, 2013

### Jul 27, 2013

1. Move load_bundles to bundles framework

   5bfd29b604 Browse code
   Jacob Bandes-Storch authored July 27, 2013

2. Move fs_cache to plist framework

   d89571956d Browse code
   Jacob Bandes-Storch authored July 27, 2013

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

   f2df57df60 Browse code
   Jacob Bandes-Storch authored July 27, 2013

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

   97199ad0a6 Browse code
   Jacob Bandes-Storch authored July 27, 2013

### Jul 26, 2013

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

   80327f7bb7 Browse code
   Jacob Bandes-Storch authored July 26, 2013

### Jul 27, 2013

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

   79a1f49ec5 Browse code
   Jacob Bandes-Storch authored July 27, 2013

### 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).

   b9a06b3e0a Browse code
   Jasmin Lapalme authored July 25, 2013

### 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

   7c6d5680af Browse code
   Jacob Carlborg authored July 21, 2013

### 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.

   274f73b7de Browse code
   David Howden authored July 23, 2013

### 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).

   cfb2335761 Browse code
   David Howden authored July 21, 2013

### Mar 19, 2013

1. Bar button positioning tweaks

   b533df1a40 Browse code
   Jacob Bandes-Storch authored March 19, 2013

### Jul 20, 2013

1. Remove obsolete help text for mate -n

   fa1f4254cb Browse code
   Grant Hollingworth authored July 20, 2013

### Jun 14, 2013

1. Enable "Inspect Element" in web preview

   63b86c5221 Browse code
   Zete Lui authored June 14, 2013

### Jun 12, 2013

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

   ac9f5e5d8d Browse code
   Jakub Suder authored June 12, 2013

### 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.

   fc419f5332 Browse code
   Joachim Mårtensson authored June 6, 2013

### 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 ‘*’.

   35227b48ea Browse code
   Joachim Mårtensson authored April 30, 2013

### Apr 28, 2013

1. Corrected some Help typos

   1df2eb42c8 Browse code
   AJ Acevedo authored April 28, 2013

### Apr 17, 2013

1. Extended OakTextView API …

       Added `scopeAsString` method to retrieve current scope as NSString

   72dd8e2047 Browse code
   Sergey Chikuyonok authored April 17, 2013

### Apr 9, 2013

1. Make bundles in bundle preferences table sortable

   32a972da03 Browse code
   Steven Clukey authored April 9, 2013

### 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

   a2128f11cd Browse code
   Dirk Geurs authored April 3, 2013

### 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.

   95ce9d5197 Browse code
   Boris Dušek authored March 31, 2013

### 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.

   65ae6a22b4 Browse code
   Boris Dušek authored March 30, 2013

### 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.

   5842733e6d Browse code
   Boris Dušek authored March 18, 2013

### 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).

   eaf2d97141 Browse code
   Joachim Mårtensson authored March 24, 2013

### Mar 22, 2013

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

   17e67642b8 Browse code
   Michael Sheets authored March 22, 2013

2. Use OakCreateSmallLabel for the status text …

       This treats the label as a small size control.

   1af89c97a1 Browse code
   Michael Sheets authored March 22, 2013

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.

   9da5b345d3 Browse code
   Michael Sheets authored March 22, 2013

### Mar 19, 2013

1. Implement filter through command …

       Closes #131

   37e98655ec Browse code
   Jacob Bandes-Storch authored March 19, 2013

### Mar 20, 2013

1. Improve tooltip positioning for multiple screens

   fa4d14732b Browse code
   Jacob Bandes-Storch authored March 20, 2013

### Mar 19, 2013

1. Clean up formatting of selection string

   65eb9c271f Browse code
   Jacob Bandes-Storch authored March 19, 2013

### Mar 20, 2013

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

   c6cf087115 Browse code
   Jacob Bandes-Storch authored March 20, 2013

### Mar 19, 2013

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

   98a7cd1e08 Browse code
   Jacob Bandes-Storch authored March 19, 2013

### Mar 8, 2013

1. Remove lesser used icons to save space in download

   1cd3f313d7 Browse code
   Michael Sheets authored March 8, 2013

### Mar 7, 2013

1. Adjust scroll past end height logic …

       This will work properly with very long lines and soft wrap

       Fixes #869.

   636c321e46 Browse code
   Steven Clukey authored March 7, 2013

### Jan 31, 2013

1. Lighter tab bar background for better readibility

   6ed3c93872 Browse code
   Adam Strzelecki authored January 31, 2013

### Mar 2, 2013

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

   5391d1d7b4 Browse code
   Boris Dušek authored March 2, 2013

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.

   f4e2de14f2 Browse code
   Boris Dušek authored March 2, 2013

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).

   944e1e32fa Browse code
   Boris Dušek authored March 2, 2013

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).

   21c70057b4 Browse code
   Boris Dušek authored March 2, 2013

5. Add AXDescription to pop-ups to tell about their purpose

   baf2839299 Browse code
   Boris Dušek authored March 2, 2013

6. Add AXDescription to image buttons

   c3f57b0235 Browse code
   Boris Dušek authored March 2, 2013

### 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.

   7892eac2d4 Browse code
   Steven Clukey authored February 24, 2013

### 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/

   a05b1dca2e Browse code
   Michael Sheets authored February 22, 2013

### 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.

   40f728ff8f Browse code
   Michael Sheets authored February 18, 2013

### 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.

   ecd666f24a Browse code
   Michael Sheets authored February 15, 2013

### Feb 13, 2013

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

   05af681717 Browse code
   Michael Sheets authored February 13, 2013

### Feb 14, 2013

1. Use solid colors for divider line. …

       This is required now that they are set as opaque.

   75c7457ee9 Browse code
   Michael Sheets authored February 14, 2013

### Feb 5, 2013

1. Match HTML divider color with the status bar divider

   2bd089ffe5 Browse code
   Michael Sheets authored February 5, 2013

### Feb 12, 2013

1. Restyle html view status bar to match others

   9e56b73797 Browse code
   Michael Sheets authored February 12, 2013

### Feb 5, 2013

1. Restyle and add graphics to file browser action bar

   7fa0e34a5e Browse code
   Michael Sheets authored February 5, 2013

### Jan 31, 2013

1. Shrink height when tabs above document is enabled

   034dd8f06b Browse code
   Michael Sheets authored January 31, 2013

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.

   a9d80f5a0d Browse code
   Michael Sheets authored January 31, 2013

### Jan 30, 2013

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

   2200df74fd Browse code
   Michael Sheets authored January 30, 2013

### Jan 29, 2013

1. Move file browser divider into parent view

   9a26e0df5e Browse code
   Michael Sheets authored January 29, 2013

### Feb 4, 2013

1. Use correct syntax for including local headers

   a6f0b75d4c Browse code
   Michael Sheets authored February 4, 2013

### Feb 1, 2013

1. Don't mutate shared themes

   8de62bbc85 Browse code
   Joachim Mårtensson authored February 1, 2013

### 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>

   0f41c946f0 Browse code
   Bob Rockefeller authored January 31, 2013

2. Fixed wrong color in red file labels

   e5d2d43e61 Browse code
   michael starke authored January 31, 2013

### Jan 28, 2013

1. SymbolChooser live-updates its selections …

       This code is public domain.

       Closes #166.

   b9d9e9140a Browse code
   Steven Clukey authored January 28, 2013

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.

   33751cadf1 Browse code
   Steven Clukey authored January 28, 2013

### 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

   08d8d69f2e Browse code
   Adam Strzelecki authored January 30, 2013

2. Fixed control/tab bar label shadows …

       NSShadowAttributeName has no effect when using CTFrame. Use
       CGContextSetShadowWithColor instead.

   5f69592a1f Browse code
   Adam Strzelecki authored January 30, 2013

### 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

   60965ce6c3 Browse code
   Adam Strzelecki authored January 23, 2013

### 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.

   c7035ded44 Browse code
   Steven Clukey authored January 24, 2013

### Jan 25, 2013

1. Add inactive state coloring for dividers.

   a7564b924c Browse code
   Michael Sheets authored January 25, 2013

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.

   7e472b5162 Browse code
   Michael Sheets authored January 25, 2013

### Jan 23, 2013

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

   d25c07f3a4 Browse code
   Steven Clukey authored January 23, 2013

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.

   39ecb522d7 Browse code
   Michael Sheets authored January 23, 2013

### 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.

   2b51ca93bd Browse code
   Joachim Mårtensson authored January 22, 2013

### 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.

   6970031245 Browse code
   Michael Sheets authored January 20, 2013

### Dec 31, 2012

1. Make OakTabBarView accessible

   1bcdf4abe2 Browse code
   Boris Dušek authored December 31, 2012

### 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

   7d47dd279f Browse code
   Boris Dušek authored December 8, 2012

### 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.

   cca891d74c Browse code
   Caleb Land authored January 16, 2013

### 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.

   b277613ecd Browse code
   Jacob Bandes-Storch authored January 3, 2013

2. Move FS utility funcs from OFB to a separate file

   2162082f37 Browse code
   Jacob Bandes-Storch authored January 3, 2013

### 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.

   d501a4e81d Browse code
   Joachim Mårtensson authored September 17, 2012

### 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.

   5369b7cf81 Browse code
   Boris Dušek authored November 11, 2012

### 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.

   224ee5fd5e Browse code
   Boris Dušek authored October 4, 2012

### Dec 11, 2012

1. Add indentOnPaste to ordering in bundle editor

   8bdbeacfcd Browse code
   Michael Sheets authored December 11, 2012

### Dec 13, 2012

1. Use same mechanism to limit redraw in modifiedURLs

   b03ee2f6ee Browse code
   Joachim Mårtensson authored December 13, 2012

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

   417ecef624 Browse code
   Joachim Mårtensson authored December 13, 2012

### 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.

   ac8f88b33e Browse code
   Michael Sheets authored December 5, 2012

### Oct 18, 2012

1. Limit file browser refresh on open/close …

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

   d983d5a5d2 Browse code
   Joachim Mårtensson authored October 18, 2012

### Oct 28, 2012

1. Seed the contributor lookup table a bit.

   09a81e9024 Browse code
   Brad Choate authored October 28, 2012

### Oct 6, 2012

1. Add dynamic contributions page to the About window

   eb30ea3cb8 Browse code
   Brad Choate authored October 6, 2012

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).

   6753f4e3d6 Browse code
   Brad Choate authored October 6, 2012

3. Don’t output markdown headers when generating HTML

   a1a73e8593 Browse code
   Brad Choate authored October 6, 2012

### 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.

   dc34d5c9d9 Browse code
   Josh Goebel authored November 2, 2012

### 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.

   3ca80b9020 Browse code
   Gary S. Weaver authored November 1, 2012

### Oct 26, 2012

1. Make command properties drawer shorter. …

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

   e5ac757fb6 Browse code
   Adam Strzelecki authored October 26, 2012

### 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).

   7a9ff232fe Browse code
   Robert Hencke authored October 6, 2012

2. Fix typo in comment (NSMneu → NSMenu)

   1ebe9d9373 Browse code
   Robert Hencke authored October 6, 2012

### Oct 1, 2012

1. Add comma to release notes

   c49f06fd28 Browse code
   Jonas Müller authored October 1, 2012

### Sep 28, 2012

1. Combine about, changes, and credits window …

       This includes bundle changes.

   eb248eb579 Browse code
   Rasmus Abrahamsen authored September 28, 2012

### Sep 22, 2012

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

   ca25560f19 Browse code
   Ole Gammelgaard Poulsen authored September 22, 2012

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

       Fixes #445.

   7cc86ae8cf Browse code
   Étienne Després authored September 22, 2012

3. Fix “replace selected” for Find All in document …

       Fixes issue #77.

   ccc0b414bb Browse code
   Rasmus Abrahamsen authored September 22, 2012

4. Incremental search keybindings …

       You can now use CTRL+S and CTRL+SHIFT+S to jump forwards/backwards
       in the incremental search results

   adec6e4184 Browse code
   Mads Hartmann Jensen authored September 22, 2012

5. Made the Live Search view prettier

   c2eee4578f Browse code
   Mads Hartmann Jensen authored September 22, 2012

6. Fix CRLF issue #409.

   443421be84 Browse code
   Rasmus Abrahamsen authored September 22, 2012

7. Consider .ai and .gif files binary by default …

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

   62e2fc77fc Browse code
   Sudara authored September 22, 2012

### Sep 18, 2012

1. Use curly quotes in dialog text

   c24f365daa Browse code
   Ryan Maxwell authored September 18, 2012

### 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.

   69341b2960 Browse code
   Dennis Vennink authored September 9, 2012

### Sep 7, 2012

1. Extended gutter theming support …

       The following four new keys have been added:

        - gutterIconsHover
        - gutterIconsPressed
        - gutterSelectionIconsHover
        - gutterSelectionIconsPressed

   f2f14dd48a Browse code
   Dennis Vennink authored September 7, 2012

### Sep 5, 2012

1. Add revision numbers to release notes

   6dde27d33c Browse code
   Elia Schito authored September 5, 2012

### Aug 27, 2012

1. Add support for reading xcodeproj files

   55c0109fa9 Browse code
   Zach Drayer authored August 27, 2012

### 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.

   99fd86dab6 Browse code
   Zach Drayer authored August 31, 2012

### Aug 28, 2012

1. Fix a leak in OakHistoryController

   158c931810 Browse code
   Zach Drayer authored August 28, 2012

### 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

   52d321b510 Browse code
   Jeremy Whitlock authored September 1, 2012

### Aug 31, 2012

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

   a2fd40db29 Browse code
   Dennis Vennink authored August 31, 2012

2. Added the ellipsis icon for folded text.

   4acbbf6b25 Browse code
   Dennis Vennink authored August 31, 2012

3. fixup! Incorporated scalable icons. …

       Implemented proper alignment of the icons with the line number font.

   007e498a02 Browse code
   Dennis Vennink authored August 31, 2012

### Aug 30, 2012

1. Incorporated scalable icons.

   6eca51ab33 Browse code
   Dennis Vennink authored August 30, 2012

### Aug 29, 2012

1. Update gutter images

   69919fd329 Browse code
   Dennis Vennink authored August 29, 2012

### 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

   260e3d8b9d Browse code
   Jeremy Whitlock authored August 28, 2012

2. New `TM_SCM_NAME` variable …

       This can be used together with `TM_SCM_BRANCH` to customize `windowTitle`.

   c658687d08 Browse code
   Adam Strzelecki authored August 28, 2012

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.

   c28d2ec2fd Browse code
   Adam Strzelecki authored August 28, 2012

### Aug 27, 2012

1. Use 64-bit: update submodules

   d31aefd20d Browse code
   Jacob Bandes-Storch authored August 27, 2012

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!

   d4ce498f60 Browse code
   Jacob Bandes-Storch authored August 27, 2012

3. Use 64-bit: miscellaneous fixes …

       - Property using superclass ivar
       - Multiple methods matching selector

   a79c9d0377 Browse code
   Jacob Bandes-Storch authored August 27, 2012

4. Use 64-bit: explicit visibility where required

   dfdde3283f Browse code
   Jacob Bandes-Storch authored August 27, 2012

5. Use 64-bit: alignment pragma change

   34d65bbb26 Browse code
   Jacob Bandes-Storch authored August 27, 2012

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

   5634ebbf28 Browse code
   Jacob Bandes-Storch authored August 27, 2012

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.

   db73ca4c92 Browse code
   Jacob Bandes-Storch authored August 27, 2012

8. Use 64-bit: replace SELNAME with sel_getName

   9584afba16 Browse code
   Jacob Bandes-Storch authored August 27, 2012

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

   c976bce24d Browse code
   Jacob Bandes-Storch authored August 27, 2012

10. Use 64-bit: compiler/linker settings

    dca4292990 Browse code
    Jacob Bandes-Storch authored August 27, 2012

11. Use colored diagnostics for compiler output

    502b9e59d1 Browse code
    Jacob Bandes-Storch authored August 27, 2012

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

    b675c78909 Browse code
    Jacob Bandes-Storch authored August 27, 2012

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

    0fcb4c2d2c Browse code
    Jacob Bandes-Storch authored August 27, 2012

14. Use libc++: update submodules

    928faf95d3 Browse code
    Jacob Bandes-Storch authored August 27, 2012

15. Use libc++: replace typeof with decltype

    c5520a6919 Browse code
    Jacob Bandes-Storch authored August 27, 2012

16. Use libc++: replace __gnu_cxx with std

    fd419fd0b1 Browse code
    Jacob Bandes-Storch authored August 27, 2012

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

    e3aa997b06 Browse code
    Jacob Bandes-Storch authored August 27, 2012

18. Use libc++: compiler/linker settings

    c6b6d1a21d Browse code
    Jacob Bandes-Storch authored August 27, 2012

### Aug 26, 2012

1. Use Cocoa instead of Carbon for popup menus

   6aeb27f02f Browse code
   Jacob Bandes-Storch authored August 26, 2012

### Aug 25, 2012

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

   64bb4b46cf Browse code
   Jacob Bandes-Storch authored August 25, 2012

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

       Only attempt to show the item in Finder if it is a file

   9057d22e06 Browse code
   Jacob Bandes-Storch authored August 25, 2012

3. Title case tab context menu items

   40db25c712 Browse code
   Jacob Bandes-Storch authored August 25, 2012

4. Bring back the dock menu

   1aec57762c Browse code
   Jacob Bandes-Storch authored August 25, 2012

5. Replace PNGs with resizable PDF template images

   5a80fcea95 Browse code
   Dennis Vennink authored August 25, 2012

6. Add gutterSelectionBorder and gutterIcons theme keys

   6e02f55fff Browse code
   Dennis Vennink authored August 25, 2012

### 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.

   19457ad2e8 Browse code
   Lukasz Czekaj authored August 26, 2012

### Aug 25, 2012

1. Use gutter divider color for selection rectangle

   9f72b75827 Browse code
   Adam Strzelecki authored August 25, 2012

### 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.

   ed534778a7 Browse code
   Jeremy Whitlock authored August 24, 2012

### Aug 23, 2012

1. Extend gutter theming to selection foreground …

       New theme setting: gutterSelectionForeground

   b8b25a46c8 Browse code
   David Howden authored August 23, 2012

2. Add scope attributes for Ant, CMake, Maven and Scons projects.

   925f9fb729 Browse code
   Michael Sheets authored August 23, 2012

### Aug 22, 2012

1. Added GitHub workflow info to README.md

   51cb92b527 Browse code
   Gerd Knops authored August 22, 2012

2. Remember Bundle Editor column widths

   e13f1ec13f Browse code
   Gerd Knops authored August 22, 2012

3. BundleEditor: follow truncated names with ellipsis

   d19e2fa49e Browse code
   Gerd Knops authored August 22, 2012

4. Use cf::color_t RGBA constructor when converting color_info_t

   ab310cbdab Browse code
   Joachim Mårtensson authored August 22, 2012

### Aug 21, 2012

1. File Browser will now remember it's width …

       This closes issue #5.

   9d17d74b1b Browse code
   Gerd Knops authored August 21, 2012

### Aug 22, 2012

1. Extend support for theming the gutter …

       New theme setting: gutterSelectionBackground

   f2dd19f2a3 Browse code
   David Howden authored August 22, 2012

### Aug 21, 2012

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

   f24462a523 Browse code
   Jacob Bandes-Storch authored August 21, 2012

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

   caf77cc40c Browse code
   Jacob Bandes-Storch authored August 21, 2012

3. Prevent horizontal scrolling of search results

   a611fc213d Browse code
   Jacob Bandes-Storch authored August 21, 2012

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.

   b24f2294fb Browse code
   Jacob Bandes-Storch authored August 21, 2012

### 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.

   cd84a864d2 Browse code
   Paul Wilde authored August 22, 2012

### Aug 21, 2012

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

   fc9767b520 Browse code
   Dennis Vennink authored August 21, 2012

### Aug 19, 2012

1. Calculate default gutter colors based on theme

   8eb3dd0379 Browse code
   Jacob Bandes-Storch authored August 19, 2012

2. Store component values in cf::color_t

   66650f8190 Browse code
   Jacob Bandes-Storch authored August 19, 2012

3. Add support for theming the gutter …

       Theme setting keys gutterForeground, gutterBackground, and gutterDivider

   1c83eaa389 Browse code
   Jacob Bandes-Storch authored August 19, 2012

### Aug 18, 2012

1. Refactor theme selection to pass through OakDocumentView

   dc810607b2 Browse code
   Jacob Bandes-Storch authored August 18, 2012

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

   c0f65b6101 Browse code
   Jacob Bandes-Storch authored August 18, 2012

### Aug 19, 2012

1. Retina assets for the "Bundle Editor" window

   edcaffed91 Browse code
   Paul Wilde authored August 19, 2012

2. Retina assets for the "Find in Project" window

   54b0d200af Browse code
   Paul Wilde authored August 19, 2012

3. Retina assets for the "OakFileBrowser"

   38801c7c79 Browse code
   Paul Wilde authored August 19, 2012

4. Retina tab assets

   d947ec2467 Browse code
   Paul Wilde authored August 19, 2012

### Aug 18, 2012

1. Include high resolution I-Beam cursor

   d15a0eddb3 Browse code
   jtbandes authored August 18, 2012

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.

   6e70305c5d Browse code
   jtbandes authored August 18, 2012

3. Fix bundle menu items' appearance in the Help menu

   7a56a801b6 Browse code
   jtbandes authored August 18, 2012

4. Bundle Editor: allow selection of disabled items …

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

   7aa70dd581 Browse code
   Gerd Knops authored August 18, 2012

### 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.

   36b2e82e3a Browse code
   Damon McDougall authored August 16, 2012

2. Let the user resize bundle editor columns

   11e08b7ee8 Browse code
   Elia Schito authored August 16, 2012

### 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.

   18eecca2ab Browse code
   Joachim Mårtensson authored July 7, 2012

### 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.

   ece7758e09 Browse code
   Joachim Mårtensson authored June 30, 2012

### Aug 15, 2012

1. Updated Preferences icons for HiDPI displays.

   f4ecbe0f1e Browse code
   Paul Wilde authored August 15, 2012

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

   5fbf567820 Browse code
   Adam Strzelecki authored August 15, 2012

### Aug 14, 2012

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

   4354febdbc Browse code
   Adam Strzelecki authored August 14, 2012

### Aug 15, 2012

1. Updated chinese translation for terminal preference panel.

   00b65bbd28 Browse code
   Bo Xiao authored August 15, 2012

### Aug 13, 2012

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

   96cb899b53 Browse code
   Bo Xiao authored August 13, 2012

### 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

   7bd9f9817b Browse code
   Adam Strzelecki authored August 14, 2012

### Aug 13, 2012

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

   6763406fe5 Browse code
   Adam Strzelecki authored August 13, 2012

2. Check current grammar bundle in bundle item popup. …

       Do not specify selected index explicitely, popup menu item with NSOnState gets selected by default.

   752430f339 Browse code
   Adam Strzelecki authored August 13, 2012

3. Select popup menu item only on non-negative index.

   98de1f5f51 Browse code
   Adam Strzelecki authored August 13, 2012

4. Select current grammar at bundle item popup.

   8a8432d065 Browse code
   Adam Strzelecki authored August 13, 2012

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

   5aaebb9e25 Browse code
   jtbandes authored August 13, 2012

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

   757219b8f1 Browse code
   jtbandes authored August 13, 2012

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.

   25071ce6e5 Browse code
   jtbandes authored August 13, 2012

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.

   df84fa92d4 Browse code
   Cody Krieger authored August 13, 2012

### Aug 12, 2012

1. Fixed Grammar Mistake.

   18f6e2c6af Browse code
   Andrew Hobden authored August 12, 2012

2. Add bundle menu to the status bar

   449b6229d8 Browse code
   Elia Schito authored August 12, 2012

3. Extract Bundle menu to a framework

   b0018c2099 Browse code
   Elia Schito authored August 12, 2012

4. configure: exit with code != 0 on error …

       Using this allows other software to check whether configure was
       successful.

       This patch is public domain.

   f29af22cff Browse code
   Clemens Lang authored August 12, 2012

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.

   b08daa7f97 Browse code
   Clemens Lang authored August 12, 2012

6. Changed Find/Replace combobox height to 21, to be aligned with other controls.

   0e581cd2f6 Browse code
   Bo Xiao authored August 12, 2012

### Aug 11, 2012

1. Use SecItemCopyMatching instead of the deprecated SecKeychainSearch

   7f3818fb4c Browse code
   jtbandes authored August 11, 2012

2. QLPreviewPanel is no longer private

   df3e9bcdc2 Browse code
   jtbandes authored August 11, 2012

3. Stop using deprecated NSSavePanel/NSOpenPanel methods

   0112532e64 Browse code
   jtbandes authored August 11, 2012

4. Use Security framework instead of deprecated OpenSSL functions

   3d3d22f509 Browse code
   jtbandes authored August 11, 2012

5. Helper function for getting CFError description

   4cc010c289 Browse code
   jtbandes authored August 11, 2012

6. Fix xib warnings

   bf2fa756ce Browse code
   jtbandes authored August 11, 2012

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

   ee11103d2d Browse code
   jtbandes authored August 11, 2012

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

   45b68389f2 Browse code
   jtbandes authored August 11, 2012

### Aug 12, 2012

1. Updated IRC channel name in README. …

       Only one octothorpe now.

   f4f6d9cc6d Browse code
   Tuk Bredsdorff authored August 12, 2012

### Aug 11, 2012

1. Implement ⌃Y for yanking last deletion

   99ab4e6578 Browse code
   Nathaniel Tagg authored August 11, 2012

### Aug 9, 2012

1. Add example textmate image to README …

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

   e495a6e9a3 Browse code
   jtmkrueger authored August 9, 2012

### 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

   4716c15c92 Browse code
   Jesse B. Hannah authored August 11, 2012

2. Added fullscreen behavior to document window …

       In Interface Builder: Attributes Inspector -> Full Screen -> Primary
       Window

   824e9b5f27 Browse code
   Jesse B. Hannah authored August 11, 2012

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.

   dc37506831 Browse code
   Mads Hartmann Jensen authored August 11, 2012

### 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.

   a921f258e1 Browse code
   Fernando authored August 10, 2012

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

   db294ba346 Browse code
   Adam Strzelecki authored August 10, 2012

### 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++!

   2beac7080b Browse code
   Gerd Knops authored August 5, 2012

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/

   aa234b723d Browse code
   Gerd Knops authored August 5, 2012

3. git: show modifications in upstream folders

   7892f5269a Browse code
   Gerd Knops authored August 5, 2012

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.

   8d523c0a66 Browse code
   Gerd Knops authored August 5, 2012

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.

   c98bc92b5d Browse code
   Gerd Knops authored August 5, 2012

### 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

   b21fbd897e Browse code
   Joachim Mårtensson authored July 14, 2012

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

   49320f4efb Browse code
   Joachim Mårtensson authored July 14, 2012

### Jul 13, 2012

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

   2c6a8471f9 Browse code
   Joachim Mårtensson authored July 13, 2012

### Aug 10, 2012

1. ninja now back in trunk of brew …

       https://github.com/mxcl/homebrew/commit/ff13af6fb37b378c9edb3a91fe3d6016c36661b5

   707b45b2cd Browse code
   shadowbq authored August 10, 2012

2. Also check for boost in $CPATH …

       This way it can be installed anywhere as long as the C compiler can find it.

   4ae46a5349 Browse code
   David Caldwell authored August 10, 2012

3. Update README.md

   547aa70aad Browse code
   youngrok authored August 10, 2012

4. Update .gitmodules to use Git over HTTP

   a3a82c93ce Browse code
   Adam Malcontenti-Wilson authored August 10, 2012

### Aug 9, 2012

1. Update README.md

   7143f0034e Browse code
   burgua authored August 9, 2012

2. Update README.md …

       In order to build from TextMate you also need
       to set the PATH variable.

   009e0ac563 Browse code
   Mads Hartmann Jensen authored August 9, 2012

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.

   1f2b155dcf Browse code
   Sylvain Defresne authored August 9, 2012

4. Hardcode Ruby scripts to use the Apple-provided version of MRI 1.8 since rdoc/usage is missing in 1.9

   0462b4a18b Browse code
   Aaron Brethorst authored August 9, 2012