Sto provando a scrivere un piccolo plug-in per eliminare il file corrente e chiudere la vista attiva. Per qualche motivo self.view.file_name() restituisce sempre None.Testo sublime: come ottenere il nome file della vista corrente
Sono nuovo di Python e non ho idea del perché non funzioni in questo modo. Secondo lo API Reference nome_file() restituisce il nome del file della vista corrente.
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')
uscita di dir (self.view):
[ 'classe', 'delattr', 'dict', 'doc', 'formato ',' getattribute ',' hash ',' init ',' len ' 'modulo', 'nuova', 'ridurre', 'reduce_ex', 'repr', 'setattr', 'sizeof',' str', 'subclasshook', 'weakref', 'add_regions', 'begin_edit', 'buffer_id', 'classificare', 'command_history', 'em_width', 'encoding', 'end_edit', 'cancelli' , '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_only ',' 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_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"]
Eventuali messaggi di errore nella console? –
No. Il controllo per '(f è None)' è sempre true e quindi ritorna prima che raggiunga 'send2trash()'. Senza verificare la chiamata 'send2trash()' fallisce. Quando eseguo 'view.file_name()' nella console restituisce il percorso corretto. – Felix
qual è l'output di print dir (self.view)? –