Сегодня вышел 2165 билд прекрасного редактора SublimeText 2, а с ним приехало несколько интересных API методов, среди которых меня прежде всего заинтересовал view.encoding(), который возвращает кодировку открытого файла. Если же файл не открыт а просто создан и еще не сохранен, то этот метод возвращает строку ‘Undefined’.

Для своих плагинов которых работают с текстом я написал небольшой хак который позволяет абстрагироваться от этого, беря также в учет новую настройку ‘default_encoding’ которая содержит кодировку по-умолчанию для новых файлов.

def enc(self):
    if self.view.encoding() == 'Undefined':
        return self.view.settings().get('default_encoding', 'UTF-8')
    else:
        return self.view.encoding()