[TxMt] Re: View List Problem
Charilaos Skiadas
cskiadas at uchicago.edu
Tue Jul 11 17:40:57 UTC 2006
What I would suggest is that you pretty-print the hash results right
after you populate it, so that you know which key is problematic.
I would guess though that your problem might be this line:
results[:match] = html_escape($1)
It will not match anything, since there is no group in the regexp. I
don't know what you use that for, but you might want to change it a bit.
On Jul 11, 2006, at 12:21 PM, Mike Mellor wrote:
> I was probably a little too brief on the description of my problem...
> I am trying to modify a command in the GTD bundle that is based on
> a command in the TODO bundle. The command goes through all of the
> files in a given directory, and creates a list grouped by the
> context of each line in the files that is displayed as an HTML
> document. The TODO version greps each line, which is problematic
> when I have similar contexts, such as TASK and WORK_TASK (also,
> having a context word in any other line will also generate a false
> true). I have modified the code to compare string values for the
> context and the first word in each line. I think that this
> comparison is working properly, but I am having trouble with the
> resulting list. It should show a context as a header, then the
> file name, line number, and content of each line for that context.
> It currently shows the filename and line number, but not the content.
>
> With that additional information, can anyone see what's going
> wrong? Thanks.
>
> Mike
>
> On 7/10/06, Mike Mellor < alaskamike at gmail.com> wrote:I am trying
> to modify my view lists command. It is based on the TODO
> bundle command, but I am trying to use string comparison instead of
> regexp to test lines. As far as I can tell, the sorting is going ok,
> but I'm having trouble with the output. It seems to show everything
> except for the task itself (the content). Here is the code, any idea
> what's going wrong? Thanks.
>
> Mike
>
>
> #!/usr/bin/env ruby
>
> $myPath = ENV['TM_DIRECTORY']
>
> $tags = [] #user defined contexts
>
> def readContexts(a)
> # processes contexts.gtd into script
> context, tabCommand, tabString, regex, color = a.split(/\|/)
> $tags.push({:label => context, :regexp => regex, :color =>
> color, :matches => []})
> end
>
>
> require "#{ENV['TM_SUPPORT_PATH']}/lib/textmate"
> require "erb"
> include ERB::Util
>
> def TextMate.file_link (file, line = 0)
> return "txmt://open/?url=file://" +
> file.gsub(/[^a-zA-Z0-9.-\/]/) { |m| sprintf("%%%02X", m[0]) } +
> "&line=" + line.to_s
> end
>
> # the contexts.gtd file is read, and converted into $contexts
> file = File.open($myPath+"/contexts.gtd", "r")
> file.each do |line|
> readContexts(line)
> end
>
> # sorting happens
> $tags.each do |tag|
> context = tag[:label]
> myFiles = Dir.entries($myPath)
> myFiles.each do |fileName|
> if (fileName[-3,3] == "gtd") and (fileName != " contexts.gtd")
> lineno = 0
> mFile = File.open(fileName)
> mFile.each do |line|
> lineno = lineno + 1
> re = /\s/
> ctask = re.match(line)
> if ctask.pre_match == context
> results = {
> :file => fileName[0..-5],
> :line => lineno,
> :content => ctask.post_match
> }
> results[:match] = html_escape($1)
> tag[:matches] << results
> end
> end
> end
> end
> end
>
> tmpl_file = "#{ENV['TM_BUNDLE_SUPPORT']}/template.rhtml"
> puts ERB.new(File.open(tmpl_file), 0, '<>').result
>
Haris
More information about the textmate
mailing list