I'm trying to create a language bundle where it will not be possible to identify all the scopes correctly using regular expressions. Is there a way to generate the scope dynamically somehow?
I see there is a TextMate Ctags bundle (https://github.com/textmate/ctags.tmbundle). Does TextMate use CTags to locate and syntax color both functions and variables? Where does the file go and what name does it need to have?
Thanks,
John DeSoi, Ph.D.
Hey there,
I'm trying to figure out how to get back to a command's HTML window after
the command has finished. What I currently have works fine:
#!/usr/bin/env ruby18
require "#{ENV['TM_SUPPORT_PATH']}/lib/tm/executor"
ENV['EDITOR'] = 'mate --wait'
TextMate::Executor.run("eyaml", "edit", "#{ENV['TM_FILEPATH']}")
I have Output set to show in a new HTML window and I do get the output
there. I'm just wondering if there's a way to get TM to automatically
return to the HTML window after I've closed the modified eyaml (so I don't
miss any error output for example).
Thanks,
George
I’ve been seeing things where a search gives what I know are incorrect
results, or worse, I’ll go for days thinking I’ve identified all the
references to some string in a project then find out I missed a few. I
think I’ve somewhat figured out how to reproduce it.
Selecting a folder in the File Browser and hitting ⇧⌘F mostly works
as expected, but if the Find dialog is already open, the “In:” field
doesn’t update.
If you perform the search anyway, it seems to sometimes search the
original location (still displayed) and sometimes search what you had
selected in the File Browser, even though that isn’t displayed. I
swear it searches the entire project sometimes as well, but I could be
wrong about that.
In any case, something isn’t quite right. Thanks.
--
Rob McBroom
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>
Hello,
I am using TextMate along with nvALT. I will open a file in Textmate from nvALT with the edit with functionality. If I accidentally modify the file in nvALT while it's open in TextMate, TextMate doesn't reload the file.
BBEdit does do this though.
I really don't like BBEdit that much, so I don't want to use that. Is there an option somewhere to enable this functionality? If not, is it possible to submit a feature request to enable the functionality?
Thanks
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.
Hi all,
I've written a custom action in order to compete my PHP functions. By default only functions inside a file are completed, but my action can complete all functions inside a project folder!
I use theRuby TextMate::UI.complete to show the completion list.
Is there a way to have a fuzzy search? Now you have to type the all letters of a function. This is annoying when al lot of functions have the same (long) prefix.
Example function names:
prefix_more_name_1
prefix_more_name_2
prefix_more_name_3
It should be nice when you type pr3 you get prefix_more_name_3. No you have to type "prefix_more_name" completely...
== feek
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.)