I updated a PostgreSQL bundle with new keywords for the latest version. As far as I can tell there is no difference except the the new version has quite a few more keywords. But the bundle editor syntax coloring now indicates there are errors after this specification. Is there a string length limit or some other way to fix it? As far as I can tell the bundle is working find and all keywords are recognized.
John DeSoi, Ph.D.
old
<key>match</key>
<string>(?xi)\b(abort|absolute|access|action|add|admin|after|aggregate|all|also|alter|always|analyse|analyze|and|any|array|as|asc|assertion|assignment|asymmetric|at|attribute|authorization|backward|before|begin|between|bigint|binary|bit|boolean|both|by|cache|called|cascade|cascaded|case|cast|catalog|chain|char|character|characteristics|check|checkpoint|class|close|cluster|coalesce|collate|collation|column|comment|comments|commit|committed|concurrently|configuration|connection|constraint|constraints|content|continue|conversion|copy|cost|create|cross|csv|current|current_catalog|current_date|current_role|current_schema|current_time|current_timestamp|current_user|cursor|cycle|data|database|day|deallocate|dec|decimal|declare|default|defaults|deferrable|deferred|definer|delete|delimiter|delimiters|desc|dictionary|disable|discard|distinct|do|document|domain|double|drop|each|else|enable|encoding|encrypted|end|enum|escape|event|except|exclude|excluding|exclusive|execute|exists|explain|extension|external|extract|false|family|fetch|first|float|following|for|force|foreign|forward|freeze|from|full|function|functions|global|grant|granted|greatest|group|handler|having|header|hold|hour|identity|if|ilike|immediate|immutable|implicit|in|including|increment|index|indexes|inherit|inherits|initially|inline|inner|inout|input|insensitive|insert|instead|int|integer|intersect|interval|into|invoker|is|isnull|isolation|join|key|label|language|large|last|lateral|lc_collate|lc_ctype|leading|leakproof|least|left|level|like|limit|listen|load|local|localtime|localtimestamp|location|lock|mapping|match|materialized|maxvalue|minute|minvalue|mode|month|move|name|names|national|natural|nchar|next|no|none|not|nothing|notify|notnull|nowait|null|nullif|nulls|numeric|object|of|off|offset|oids|on|only|operator|option|options|or|order|out|outer|over|overlaps|overlay|owned|owner|parser|partial|partition|passing|password|placing|plans|position|preceding|precision|prepare|prepared|preserve|primary|prior|privileges|procedural|procedure|program|quote|range|read|real|reassign|recheck|recursive|ref|references|refresh|reindex|relative|release|rename|repeatable|replace|replica|reset|restart|restrict|returning|returns|revoke|right|role|rollback|row|rows|rule|savepoint|schema|scroll|search|second|security|select|sequence|sequences|serializable|server|session|session_user|set|setof|share|show|similar|simple|smallint|snapshot|some|stable|standalone|start|statement|statistics|stdin|stdout|storage|strict|strip|substring|symmetric|sysid|system|table|tables|tablespace|temp|template|temporary|text|then|time|timestamp|to|trailing|transaction|treat|trigger|trim|true|truncate|trusted|type|types|unbounded|uncommitted|unencrypted|union|unique|unknown|unlisten|unlogged|until|update|user|using|vacuum|valid|validate|validator|value|values|varchar|variadic|varying|verbose|version|view|volatile|when|where|whitespace|window|with|without|work|wrapper|write|xml|xmlattributes|xmlconcat|xmlelement|xmlexists|xmlforest|xmlparse|xmlpi|xmlroot|xmlserialize|year|yes|zone)\b</string>
new
<key>match</key>
<string>(?xi)\b(abort|absolute|access|aclitem|action|add|admin|after|aggregate|all|also|alter|always|analyse|analyze|and|any|anyarray|anyelement|anyenum|anynonarray|anyrange|array|as|asc|assertion|assignment|asymmetric|at|attach|attribute|authorization|backward|before|begin|between|bigint|binary|bit|bool|boolean|both|box|bpchar|by|bytea|cache|call|called|cascade|cascaded|case|cast|catalog|chain|char|character|characteristics|check|checkpoint|cid|cidr|circle|class|close|cluster|coalesce|collate|collation|column|columns|comment|comments|commit|committed|concurrently|configuration|conflict|connection|constraint|constraints|content|continue|conversion|copy|cost|create|cross|cstring|csv|cube|current|current_catalog|current_date|current_role|current_schema|current_time|current_timestamp|current_user|cursor|cycle|data|database|date|daterange|day|deallocate|dec|decimal|declare|default|defaults|deferrable|deferred|definer|delete|delimiter|delimiters|depends|desc|detach|dictionary|disable|discard|distinct|do|document|domain|double|drop|each|else|enable|encoding|encrypted|end|enum|escape|event|event_trigger|except|exclude|excluding|exclusive|execute|exists|explain|extension|external|extract|false|family|fdw_handler|fetch|filter|first|float|float4|float8|following|for|force|foreign|forward|freeze|from|full|function|functions|generated|global|grant|granted|greatest|group|grouping|groups|gtsvector|handler|having|header|hold|hour|identity|if|ilike|immediate|immutable|implicit|import|in|include|including|increment|index|index_am_handler|indexes|inet|inherit|inherits|initially|inline|inner|inout|input|insensitive|insert|instead|int|int2|int2vector|int4|int4range|int8|int8range|integer|internal|intersect|interval|into|invoker|is|isnull|isolation|join|json|jsonb|jsonpath|key|label|language|language_handler|large|last|lateral|leading|leakproof|least|left|level|like|limit|line|listen|load|local|localtime|localtimestamp|location|lock|locked|logged|lseg|macaddr|macaddr8|mapping|match|materialized|maxvalue|method|minute|minvalue|mode|money|month|move|name|names|national|natural|nchar|new|next|no|none|not|nothing|notify|notnull|nowait|null|nullif|nulls|numeric|numrange|object|of|off|offset|oid|oids|oidvector|old|on|only|opaque|operator|option|options|or|order|ordinality|others|out|outer|over|overlaps|overlay|overriding|owned|owner|parallel|parser|partial|partition|passing|password|path|pg_attribute|pg_auth_members|pg_authid|pg_class|pg_database|pg_ddl_command|pg_dependencies|pg_lsn|pg_mcv_list|pg_ndistinct|pg_node_tree|pg_proc|pg_shseclabel|pg_subscription|pg_type|placing|plans|point|policy|polygon|position|preceding|precision|prepare|prepared|preserve|primary|prior|privileges|procedural|procedure|procedures|program|publication|quote|range|read|real|reassign|recheck|record|recursive|ref|refcursor|references|referencing|refresh|regclass|regconfig|regdictionary|regnamespace|regoper|regoperator|regproc|regprocedure|regrole|regtype|reindex|relative|release|rename|repeatable|replace|replica|reset|restart|restrict|returning|returns|revoke|right|role|rollback|rollup|routine|routines|row|rows|rule|savepoint|schema|schemas|scroll|search|second|security|select|sequence|sequences|serializable|server|session|session_user|set|setof|sets|share|show|similar|simple|skip|smallint|snapshot|some|sql|stable|standalone|start|statement|statistics|stdin|stdout|storage|stored|strict|strip|subscription|substring|support|symmetric|sysid|system|table|table_am_handler|tables|tablesample|tablespace|temp|template|temporary|text|then|tid|ties|time|timestamp|timestamptz|timetz|to|trailing|transaction|transform|treat|trigger|trim|true|truncate|trusted|tsm_handler|tsquery|tsrange|tstzrange|tsvector|txid_snapshot|type|types|unbounded|uncommitted|unencrypted|union|unique|unknown|unlisten|unlogged|until|update|user|using|uuid|vacuum|valid|validate|validator|value|values|varbit|varchar|variadic|varying|verbose|version|view|views|void|volatile|when|where|whitespace|window|with|within|without|work|wrapper|write|xid|xml|xmlattributes|xmlconcat|xmlelement|xmlexists|xmlforest|xmlnamespaces|xmlparse|xmlpi|xmlroot|xmlserialize|xmltable|year|yes|zone)\b</string>
I've been using TextMate for years and I'm productive and happy with it. However, I like to try other editors from time to time to see if I'm missing anything. Recently I spent some time learning Vim and I discovered a few things that I particularly liked.
1) Split windows -- not the kind of split windows you normally get in Mac applications, but the Vim style ones. In Vim you can easily navigate from the keyboard to your different splits and choose what files to display in each. Additionally, you don't have to reach for your mouse to create a split. When you split, Vim divides the space up for you which is what you want most of the time. I found that it is very handy when needing to view more than 1 file at a time, which in my case is most of the time. Closing splits is about as easy as they are to create -- all from the keyboard. Multiple windows isn't really the same thing because they are slow to setup and tear down.
2) Selective multifile grep -- in Vim you can use a regular expression to open a set of files, and then just grep across the open files.
3) Don't need arrow keys -- after years of editing with the mouse; I find it painful to reach for it. It hurts my right shoulder and shoulder blade. It even hurts to have to move my hand down to the arrow keys. However, in Vim it is easy to keep your hands resting on your keyboard with your shoulders relaxed. No reaching for the mouse or arrow keys.
TextMate 1 or 2, is there a way to auto-highlight all occurrences of
selected word?
I was from Windows using EditPlus, when I double-click or Ctrl+W to select
a word, EditPlus is able to automatically highlight all occurrences in a
different background colour, very nice and useful feature.
With TextMate I have to additionally hit Opt+Cmd+F, and highlighting colour
is same as selected word, not eye-catching. I use 'soft' and light
background for selection background but I prefer bright background (eg
yellow) for highlighted words.
Ctr-S not really meets what I need.
Thanks.
--
Sent from my mobile. Ignore the typos unless they're funny.
What is the newest macOS version that will run (or “support") TextMate 1.5[.11 (1635)]?
(Reason to ask: I never bothered to update my customized LaTeX bundle to TextMate 2, shame on me!)
Is there a version of TM2 that runs on macOS 10.11.6? I have an older computer and that is the newest OS supported by Apple. I don’t yet feel like buying a new computer just run a particular program.
Jerry
[OT minirant]
My late 2008 MacBook Pro has the following features missing on recent models:
* Keys that move when you strike them.
* Keys that never, ever, jam or stick or fail to record a strike.
* Replaceable RAM. I have doubled my RAM twice. It’s super easy.
* Replaceable battery. I have replaced it twice. It’s super easy.
* Replaceable hard drive. I replaced the original with a SSD. It’s super easy.
* An ExpressCard 32 slot by which I do nightly backups to cycled micro SD cards.
* Wired ethernet; WiFi is considerably slower, as my ISP explained in a lengthy note.
* Audio in. I use it nearly daily.
* MagSafe power connector.
* Theft prevention attachment slot.
* DVD drive. (OK, I’ll grant that one might be obsolete but I still rip CDs.)
I am using AS3 Bundle.
There is a difference between how the indentation rules work with TM1.5 and TM2.0.
In TM2.0 a new indent is applied each time I type a carriage return - where there was no ending ‘;'
In TM1.5 is lined up with the previous line - even where there was no ending ‘;’
The new behaviour (TM2) is quite annoying and really slows down my work, as I do not use the optional ‘;’ in as3.
I have checked the AS3 bundle rules on TM1.5 and TM 2.0 and they are the same.
Why is it different, or rather how can I fix it, please?
These are the rules. They are the same, just in a different order – and I have swapped order to see if it makes any difference. it does not.
//IN TM1.5
{
decreaseIndentPattern = '^(.*\*/)?\s*\}([^}{"'']*\{)?[;\s]*(//.*|/\*.*\*/\s*)?$|^\s*(public|final|dynamic|internal):\s*$';
increaseIndentPattern = '^.*\{[^}"'']*$|^\s*(public|final|dynamic|internal):\s*$';
indentNextLinePattern = '^(?!(.*[};:])?\s*(//|/\*.*\*/\s*$)).*[^\s;:{}]\s*$';
}
//in TM2
{ increaseIndentPattern = '^.*\{[^}"'']*$|^\s*(public|final|dynamic|internal):\s*$';
decreaseIndentPattern = '^(.*\*/)?\s*\}([^}{"'']*\{)?[;\s]*(//.*|/\*.*\*/\s*)?$|^\s*(public|final|dynamic|internal):\s*$';
indentNextLinePattern = '^(?!(.*[};:])?\s*(//|/\*.*\*/\s*$)).*[^\s;:{}]\s*$';
}
How do you get the Finder preview to show the syntax colored code as seen in TextMate? This seemed to work automagically for an older bundle I created. I'm working a new bundle and the Finder only shows the generic document icon.
Thanks,
John DeSoi, Ph.D.
I created an issue for this in github.com/textmate/bugs (https://github.com/textmate/bugs/issues/33), but perhaps that issue tracker isn’t monitored any longer.
After upgrading to MacOS 10.15 (Catalina), scrolling through a large file (>6000 lines) often does not properly paint the text. This can be temporarily corrected by dragging a selection over the missing text.
• OS version: MacOS 10.15 (Catalina)
• Textmate version: 2019-09-15 (v2.0)
• Affected file: https://github.com/w3c/json-ld-api/blob/master/index.html.
• File language: HTML
Most recently, I noticed this when moving to line 3500 in the referenced file and scrolling downwards.
Gregg Kellogg
gregg(a)greggkellogg.net
I am seeing the same thing in the Finder on Catalina. My output is the same:
🦊 qlmanage -m plugins | grep TextMate
public.source-code -> /Applications/TextMate.app/Contents/Library/QuickLook/TextMateQL.qlgenerator (1.0)
public.text -> /Applications/TextMate.app/Contents/Library/QuickLook/TextMateQL.qlgenerator (1.0)
Off topic (apologies in advance if I am stating the obvious):
When a message is being composed as rich text (depends on your email client settings; but I believe the default is to reply in the same format is as them message that was received); with a simple copy and paste (⌘ + V) the OS carries the style information and pastes the contents using that formatting. This is what you are seeing. If you don’t want the formatting to happen you paste the content using the “Paste and Match Style” option in the Edit menu (⌥ + ⇧ +⌘ + V).
Best,
Farhan
> On May 31, 2020, at 8:00 AM, textmate-request(a)lists.macromates.com wrote:
>
> From: "Marc Wilson" <posguy99(a)gmail.com <mailto:posguy99@gmail.com>>
> Subject: [TxMt] Re: TM's QuickLook plugin
> Date: May 30, 2020 at 12:18:26 PM EDT
> To: "TextMate Mailing List" <textmate(a)lists.macromates.com <mailto:textmate@lists.macromates.com>>
> Reply-To: TextMate users <textmate(a)lists.macromates.com <mailto:textmate@lists.macromates.com>>
>
>
> No, just Finder here. Well, Finder and Forklift, but Forklift is not replacing anything, it’s just the OFM I use.
>
> I’ve been poking around and TM’s QL generator on Catalina is not being registered for the same filetypes that it is on Mojave. I’ve collected a bunch of resources and am trying to make time to see if I can do some investigation.
>
> Can I ask you, what filetypes does your Catalina install have registered to the TM plugin?
>
> [ 9:16 AM][ttys000][/Users/mwilson]
> mbp13 $ qlmanage -m plugins | grep TextMate
> public.source-code -> /Applications/TextMate.app/Contents/Library/QuickLook/TextMateQL.qlgenerator <http://textmate.app/Contents/Library/QuickLook/TextMateQL.qlgenerator> (1.0)
> public.text -> /Applications/TextMate.app/Contents/Library/QuickLook/TextMateQL.qlgenerator <http://textmate.app/Contents/Library/QuickLook/TextMateQL.qlgenerator> (1.0)
> [ 9:16 AM][ttys000][/Users/mwilson]
>
> (unrelated side comment… wow, that was weird… I didn’t expect a c-n-p from Terminal into my email client to bring the Terminal theme with it)
>
> --
> Marc Wilson
> posguy99(a)gmail.com <mailto:posguy99@gmail.com>
Am I missing something? On my old laptop, running Mojave, on which I've been upgrading TM forever, I QL any file TM recognizes and the OS uses TM's parser, I get my theme, etc.
On my shiny new Catalina laptop, I get what I think is the built-in basic text QL plugin, no TM.
It's been a while, I admit... is there something somewhere that has to be turned on?
--
Marc Wilson
posguy99(a)gmail.com