Friday, December 7, 2007

Комманда быстрого поиска для TextMate

При работе на Ruby on Rails часто требуется поиск по тексту но только по самому проекту (поиск по vendor/plugins - это редкость). По мимо того обычно надо искать по руби и rhtml фаилам а не по всем. Да и TextMate по умолчанию запускает процесс поиска в своем потоке от чего тот становиться немного великоват (300мб), при этом обычно он не занимает более 70. В результате с этим надо что-то делать:

1. делаем новыю комманду для руби

2. устанавливаем input ->"selected text" or "word", output-> "show as html"

3. в качестве текста:
#!/usr/bin/env ruby

def publish_list(app_dir)
File.open("#{app_dir}/search.out", 'r') do |fh|
content = fh.read.gsub(app_dir,"~")
lines = content.split("\n")
for line in lines
color = "black"
if(line.include?("~/app/controllers/"))
color = "brown"
end
if(line.include?("~/app/views/"))
color = "green"
end
if(line.include?("~/app/models/"))
color = "red"
end
print "
#{line}
"
end
end

end

app_dir = ENV['TM_PROJECT_DIRECTORY']
text_to_search = STDIN.read

extentions = ["*.rb","*.rhtml"]

results = ""

for ext in extentions
command_text = "find #{app_dir}/app -name \"#{ext}\" -exec grep -q \"#{text_to_search}\" '{}' \\; -print > #{app_dir}/search.out"
system(command_text)
publish_list(app_dir)
end

теперь запускаем (у меня на cmd+ctrl+alt+shift+F) и видим окно с результатами поиска

1 comment:

CresceNet said...

Oi, achei seu blog pelo google está bem interessante gostei desse post. Gostaria de falar sobre o CresceNet. O CresceNet é um provedor de internet discada que remunera seus usuários pelo tempo conectado. Exatamente isso que você leu, estão pagando para você conectar. O provedor paga 20 centavos por hora de conexão discada com ligação local para mais de 2100 cidades do Brasil. O CresceNet tem um acelerador de conexão, que deixa sua conexão até 10 vezes mais rápida. Quem utiliza banda larga pode lucrar também, basta se cadastrar no CresceNet e quando for dormir conectar por discada, é possível pagar a ADSL só com o dinheiro da discada. Nos horários de minuto único o gasto com telefone é mínimo e a remuneração do CresceNet generosa. Se você quiser linkar o Cresce.Net(www.provedorcrescenet.com) no seu blog eu ficaria agradecido, até mais e sucesso. If is possible add the CresceNet(www.provedorcrescenet.com) in your blogroll, I thank. Good bye friend.