Что вам нужно, это: создать новую команду, установить «Сохранить» в «Текущий файл» (эта опция находится над текстовой областью), «Ввести» в «Весь документ» и «Вывести» в «Показать как инструмент».Совет".Теперь скопируйте приведенный ниже код в текстовую область и назначьте Command-S в качестве привязки клавиш.
#!/usr/bin/env ruby
filename = ENV["TM_FILEPATH"].split("/").last
`git add #{ENV["TM_FILEPATH"]}`
`git commit -m "#{filename}"`
Каждый раз, когда вы вводите Command-S, файл будет сохранен и передан в (уже существующий).) Git репозиторий.Если файл не был изменен, никакая фиксация не будет сделана, потому что git заблокирует фиксацию.
Ниже я расширил команду, чтобы открыть диалоговое окно для сообщения фиксации и выдать приятное предупреждение, еслирепозиторий git не найден.Вы должны быть в состоянии выяснить все остальное самостоятельно.:)
#!/usr/bin/env ruby
require ENV['TM_SUPPORT_PATH'] + '/lib/ui'
filename = ENV["TM_FILEPATH"].split("/").last
message = TextMate::UI.request_string(
:title => "Commiting changes of #{filename}",
:prompt => "Please enter the commit message for your changes."
)
add = `git add #{ENV["TM_FILEPATH"]} 2>&1`
commit = `git commit -m "#{message}" 2>&1`
git_answer = add + commit
unless git_answer.grep(/fatal/).empty?
puts "Please initialize git repository first!"
end