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 :-)
Show warning if undo will delete non-empty document

Closes #1197
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.
Track softline count in layout
Provide conversions between softlines and buffer positions
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.
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).
Support getting AXVisibleCharacterRange accessibility attribute
Updates link to Homebrew, to a functioning link.
Remove use of NSPointToCGPoint

This is not required when building in 64 bit mode or when defining NS_BUILD_32_LIKE_64.
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.
Only enable “file” services for file browser context menu

The services support in the file browser was mainly added to allow Quicksilver to grab the selection, I do not recall if this is why the selection was (also) made available as a regular string (in addition to the “file names pasteboard type”).
Handle dropping CR delimited text

Also filter malformed UTF-8 sequences from dropped text.
Use custom script to simulate “codesign --deep”

The problem is that with a bad internet connection there is a very high probability that “codesign --deep” will fail due to having to contact the timestamp server for each embedded executable object.

Long-term we probably want to sign the sub-targets as they are produced and/or link the entire thing together so that there is only a single sign target (plus embedded plug-ins).
Update shebang to explicitly call ruby 1.8
Add upload (ninja) target
Add -t/--tag option to bin/upload

Presently unused but mandatory.
Use GitHub’s (preliminary) API for uploading releases
Add credits email hash for rdwampler
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.