Я пытаюсь написать крошечный плагин для удаления текущего файла и закрытия активного представления. По какой-то причине self.view.file_name() всегда возвращает None.
Я новичок в Python, и я понятия не имею, почему это не работает. В соответствии с API Reference имя_файла() возвращает имя файла текущего представления.
import sublime, sublime_plugin, send2trash
class DeleteCurrentFileCommand(sublime_plugin.TextCommand):
def run(self, edit):
f = self.view.file_name()
if (f is None):
return
send2trash.send2trash(f)
self.view.window().run_command('close')
Выход dir (self.view):
[' класс', ' delattr', ' dict', ' doc', '< хеш ',' init ',' len, . > > Новый ', уменьшить, уменьшить. > > , размер ', размер ", str", подкласs > ',' weakref ',' add_regions ',' begin_edit ',' buffer_id ',' classify ',' command_history ',' em_width ',' encoding ',' end_edit ',' erase ',' erase_regions ',' erase_status ',' extract_completions ',' extract_scope ',' file_name ',' find ',' find_all ',' find_all_results ',' find_by_selector ',' fold ',' folded_regions ',' full_line ',' get_regions ', 'get_status', 'get_symbols', 'has_non_empty_selection_region', 'id', 'indentation_level', 'indented_region', 'insert', 'is_dirty', 'is_folded', 'is_loading', 'is_read_o nly ',' is_scratch ',' layout_extent ',' layout_to_text ',' line ',' line_endings ',' line_height ',' lines ',' match_selector ',' meta_info ',' name ',' replace ',' retarget ', 'rowcol', 'run_command', 'scope_name', 'score_selector', 'sel', 'set_encoding', 'set_line_endings', 'set_name', 'set_read_only', 'set_scratch', 'set_status', 'set_syntax_file', 'set_syntax_file' set_viewport_position ',' settings ',' show ',' show_at_center ',' size ',' split_by_newlines ',' substr ',' syntax_name ',' text_point ',' text_to_layout ',' unfold ',' viewport_extent ',' viewport_position ', 'visible_region', 'window', 'word']