Here's a pattern I've often used in TM1 -- that doesn't work as well in TM2.
I've got a big project and want to either easily browse just a subset of files or I'm doing some complicated refactoring with
regexes etc and dealing with just a subset would make my work much less error prone.
I use the grep replacement ack to find files meeting some criteria and pipe this list with xargs to the mate command.
The files appear in mate in the project drawer and are easily browsable and searchable as a set.
Here's an example where I want to work with only the files from the src/ dir in my project that have the string 'cursor'
(there's a generated dist/ dir tree that ALSO has many files with the string 'cursor' in them but I don't want to deal with
those files):
$ ack -l cursor src
src/examples/complex-atoms-model/application.sass
src/examples/components/components.sass
src/examples/examples.sass
src/examples/lennard-jones-potential/lennard-jones-potential.js
src/examples/simple-atoms-model/application.sass
src/examples/simple-atoms-model-controls-in-text/application.sass
src/examples/simplemolecules/simplemolecules.sass
src/index.sass
src/lab/css/components.sass
src/lab/grapher/samples/cities-sample.js
src/lab/grapher/samples/lennard-jones-sample.js
src/lab/grapher/samples/sample-graph.js
src/lab/grapher/samples/simple-graph2.js
src/lab/grapher/samples/surface-temperature-sample.js
src/lab/graphx/graphx.js
src/lab/layout/fullscreen.js
src/lab/layout/potential-chart.js
src/tests/two-graphs/index.html
Load those files in both TM2 and TM1:
$ ack -l cursor src | xargs mate
$ ack -l cursor src | xargs mate1
In TM1 the files appear in the project drawer and the project search for cursor gives me all the locations in this collection
of files.
However in TM2 the files do NOT appear in the project drawer (they are instead all opened as separate tabbed windows) and are
not searchable as a collection.
Here's a screenshot caompring the two TM versions and the results of a search for files with the string 'cursor':
https://img.skitch.com/20120222-t6xxnk342b6wsgwjeh1ckyykmf.jpg
I'd like an arbitrary collection of files passed to TM2 via the mate command to be represented and searchable as a collection.
Hi,
I have a question regarding $TM_SUPPORT_PATH. If I understand the manual correctly, checking out the support folder to /Library/Application Support/TextMate should automatically update $TM_SUPPORT_PATH. However, even after a restart of TextMate, it points to /Applications/Textkram/TextMate.app/Contents/SharedSupport/Support.
I'm using 1.5.10 (1631).
Any hints?
Thanks,
Jonas
I move text around pretty frequently using ⌃⌘[arrow keys]. There are various scenarios where moving text this way in TM2 causes the selection to expand, with whitespace inserted to the left. (Very easy to reproduce in code with different indentation levels.)
Is this known/intended? Is there a setting I’m missing that will stop it from happening?
If it’s intentional, let me say that I don’t see a use case for altering my selection simply because I moved it. :-) If the user is trying to move text out beyond the existing end of the line, I could see adding whitespace to make it work, but even then it should be added *outside* the selection without altering it, right?
--
Rob McBroom
<http://www.skurfer.com/>
When performing a find in folder and then replacing all of the matches with
new content, how can I save all of the files.
If I select 'Save All' from the menu the files are not saved. The only way
I have found so far is to press the <Next> button on the find dialog which
then warns me that the files have not be saved and provides a button to do
so. Is there a more direct way to save these changes?
Curt
Hi,
I would like to have more than one pattern which will be recognized for folding blocks in a language definition.
Is this possible?
for example, I have this regular expression in a language definition for one bundle:
foldingStartMarker = '^[^#]*(\([^\)]*$|\{\s*$)';
foldingStopMarker = '(^\s*\)|^\s*\})';
can I add a pattern, so that I have multiple markers that signal a block?
I tried;
foldingStartMarker = ('first block definition', 'second block definition');
foldingStopMarker = ('first block definition', 'second block definition');
but that doesn't seem to work.
I have the following language grammar defined for Java Properties files.
This grammar works as expected in TM-1, however, there are two
separate problems when using this grammar with TM-2.
1. The end capture for a 'Property Definition' does not properly skip a
newline preceded by a backslash and thus does not recognize continued lines.
2. The pattern '\{\d+\}' is not being recognized to set the
'entity.name.variable.java-props'
scope. This pattern does match
properly in a simple grammar where it is the only pattern however. (This
pattern is not part of java properties but I'm using the property files
to store strings that will be used with the java.text formatters.)
Perhaps there is a better way to describe this grammar, I'm no expert. But
since it does work correctly in TM-1 I wanted to report it as potential
defects in TM-2.
Thanks,
Curt
{ scopeName = 'source.java-props';
fileTypes = ( 'properties' );
patterns = (
{ name = 'comment.line.number-sign.java-props';
match = '^\s*([#!])(.+)?$\n?';
captures = { 1 = { name = 'punctuation.definition.comment.java-props'; }; };
},
{ comment = 'Empty Property Definition';
match = '^\s*((?:\\:|\\=|[^:=\s])+)\s*([:=])\s*$';
captures = {
1 = { name = 'keyword.other.java-props'; };
2 = { name = 'punctuation.separator.key-value.java-props'; };
};
},
{ comment = 'Property Definition';
begin = '^\s*((?:\\:|\\=|[^:=\s])+)\s*([:=])\s*';
end = '(?<!\\{1})$\n?';
beginCaptures = {
1 = { name = 'keyword.other.java-props'; };
2 = { name = 'punctuation.separator.key-value.java-props'; };
};
patterns = (
{ name = 'entity.name.variable.java-props';
match = '\{\d+\}';
},
{ comment = 'Leading space on a continued line is ignored';
match = '^\s*';
},
{ name = 'punctuation.separator.continuation.java-props';
match = '(\\)(?=$\n)';
},
{ name = 'constant.character.escape.java-props';
match = '\\(?:[\\nt\"'']|u[0-9A-Fa-f]{4})';
},
{ name = 'invalid.illegal.character.escape.java-props';
match = '\\.';
},
{ name = 'string.java-props';
match = '.';
},
);
},
{ comment = 'Ignore blank lines';
match = '^\s*$';
},
{ name = 'invalid.illegal.java-props';
comment = 'Anything else is illegal';
match = '.*';
},
);
}
The Text menu in TM2 is missing the functions: 'Convert Tabs to Spaces' and 'Convert Spaces to Tabs'.
I looked but couldn't find the functionality elsewhere.
Approximately since installing 9064 I can't run Ruby scripts. I'm not aware of changing anything, but I pretend no expertise in any of this. I've just got a couple of simple Ruby scripts that I use.
Message when run script:
Fallure running "Run:. /Users/me/Library/Application Support/TextMate/Managed/Bundles/Ruby.tmbundle/Support/RubyMate/run_script.rb:1: undefined method `+' for nil:NilClass (NoMethodError)
Scripts still run in an older version of BBEdit. Any ideas? Seems to be a problem with my setup since no other complaints.
Greg
Hi,
I am now working with the R-package for quite some time, and I have to say that R is much more fun with this package.
However, I still haven't found a workflow that completely satisfy me.
I started with sending the code directly to the R-app.
That works ok, but you have to switch between two programs, which sometimes can get cumbersome.
After that I tried the Rdaemon and executed my code directly in textmate.
At the beginning I was really impressed by these capabilities.
Unfortunately it gets a little bit problematic with bigger scripts, in my experience.
When I parse a lot of code (sometimes with some errors), I can't do anything anymore.
And I can't exit ongoing calculations so that I often end up force quitting textmate.
Executing code by parsing it to the Rdaemon in the background is also not really a solution.
It's difficult to get feedback on errors With a lot of code, you can't see when it is finished.
Also it seems like parsing a lot of code is in general error prone.
So for some lines of codes the Rdaemon is perfect, but for larger scripts it can get a little bit tricky.
For large scripts I think the bash-option ("Run Document / Selection in R") is really great.
So now, here is my question: ;)
Sending R-code within Textmate and then outputting it with the html-window within textmate is great
(especially with TM2 where you have an integrated output window).
However, every time I send code through "Run Document / Selection in R", it seems like I start a new R-session.
It would be great (at least for me) if R would remember all the code that was executed so far (just like the Rdaemon which just keeps running in the background).
So is it possible to send code to R and keep this session open?
for example, if I send:
x <- c(1,2,3)
with "Run Document / Selection in R"
and after that I send:
print(x)
I get:
Error in print(x) : object 'x' not found
It would be great, if the session would be persistent, so that I actually can execute code stepwise
(just like you can do that with the Rdaemon).
A big thanks for the great work on the R-package!
best,
martin
> On 22.02.2012, at 17:45, Allan Odgaard wrote:
>
>> I did give specific examples from another field. Perhaps you're not familiar with digital photography (it's a serious hobby of mine), but apps like Aperture and Lightroom have seriously improved the workflow of people who are serious about photography. Adding a layer of abstraction was key here.
>
> That might be, but editing photos is a very different thing than editing text. The former works well as thumbnails, the latter does not, the former (generally) have auto-generated (non-sensical) names, the latter does not. I fail to see how a parallel can be drawn here wrt. managing the files on disk.
There are differences, but there are also parallels: just like in Aperture, I have versions of files (managed in git repositories). Sometimes I want to recover old text from older versions and I need to use 3-4 apps to do that (TextMate, some graphical git utility, FileMerge and in some cases, the command line). If I could browse my git repository as in modern git clients such as Gitbox, that would cut one app out of the equation, for instance.
>> Projects were the reason why TextMate 1 did revolutionize my TeX workflow (I used to use TeXShop before which back then could only handle one file at a time) […]
>
> Are your latex files spread across different folders? If so, why?
Yes, they are spread across different folders.
Unless the project is very, very small, I split the tex project into many files. That is essential when collaborating on a project. Even though I know what git is and how to merge files, most of my co-workers do not and it is simply easier to agree by mail/phone/skype that they work on section A while I work on section B.
There are »global« configuration files I reuse. For instance, I have one single bibliography file, for otherwise I would have to maintain one for each project. If, for instance, I need to fix a typo in a reference, I need to edit only one file and then recompile all tex master files which use that reference. The same goes for general settings (packages, fonts, ), custom macros (e. g. >100 »global« custom math commands), etc.
The actual file layout depends very much on the coworkers I have. Some are very old school (think vi, not even vim) and still insist on manual line breaks in the code! They think that using UTF8 is an extravagance I have (hence, I appreciate the encoding settings in the .tmproperties file). Others are more flexible.
Hence, it was very nice for me to organize my files in a TextMate Project according to my needs and preferences without touching the file layout which is often determined by other people. I prefer putting the master tex file on top, then followed by the log, a virtual folder content which contains all section/chapter files + appendix, a virtual folder supplemental where I put »links« bibliography + settings files. Very often, I'd either work on content or presentation, and I can collapse whatever virtual folder I don't need to see. This reduces visual clutter. With virtual foldes I mean folders that exist only within the TextMate Project, but not on the file system. In that sense, TextMate 1 allows me to use my preferred layout and sorting independently of the actual file layout which I may not have control over. It goes without saying that renaming files so that the lexicographical order corresponds to the logical order is usually a big no-no in collaborative efforts.
Overall, a typical project consists of ~7 »local« files (~5 section files, an appendix and 1 master file), 4 »non-local« files (bibliography, 3 setting files) plus all the files xelatex, pdflatex, bibtex and biber generate. With local I mean they are located in the project's directory while non-local files reside somewhere else in the filesystem.
BTW, I also use the »filesystem mode« in TextMate 1, but only for lectures and stuff where I would frequently generate new files. There, it is just easier to have TextMate read the whole directory rather than add new files by hand to a project.
Part of the power of TextMate 1 is that I can use whichever paradigm (project or filesystem) I prefer in a given situation. I hope this gives you a better idea on how I work with projects.
>>> … ?comparisons added for effect? (like Windows Explorer and BBEdit).
>> I have not added these comparisons for effect.
> What purpose does it serve to state that a feature is “Windows Explorer-style”?
… because I remember that the Windows Explorer sorts files and folder this way, that's all. It was not intended as some underhanded remark to taint TextMate 2 by comparing it to Windows. You can browse files with both, so I think the comparison is apt. The analogy is even more clear with BBEdit: I'm asking for a feature that one popular browser has and TextMate doesn't.
>>> Overall your writings include too much rhetoric (like ?useless? and ?revolutionized?) and
>> This is not rhetoric, and I do not use these words lightly.
> What purpose does it serve to state that a feature is useless?
I wanted to tell you that I can't figure out how to use the feature and what it is supposed to do. I thought I could move frequently used files there, but dragging and dropping from one TextMate window to another didn't work, for instance. Adding links to the Favorites folder in the Finder and then opening them didn't occur to me. Even knowing that now, I think it'd be faster and easier to either drag & drop a whole folder from the Finder onto TextMate, to use the command line to open a folder or to use the File > Open Recent menu.
I apologize if you find »useless« is a little harsh and I should have used a less absolute formulation, but I can say Favorites is useless to me at this point and judging from the discussions on this mailing list, there are others who also didn't quite understand what they are supposed to do with Favorites.
In any case, it's a minor thing to me since I can always ignore the feature if I don't use it.
Max