Создание файлов шаблонов для Enthought Canopy

В настоящее время я использую приложение Canopy, созданное Enthought, и у меня есть требование, чтобы каждый файл, который я создаю, содержал комментарий вверху, в котором говорилось бы, кто автор, когда файл был создан и когда он последний раз редактировался.

Я хотел бы знать, есть ли способ, которым, когда я создаю новый файл в Canopy (в частности, файл python), он может автоматически заполнять файл этой информацией вверху. Точно так же, если бы я повторно открывал файл после его сохранения или при каждом новом сохранении, он автоматически обновлял бы соответствующую последнюю отредактированную часть комментария с новой отметкой даты и времени.

Приложение Enthought посоветовало мне отправить мой вопрос в Stackoverflow, поэтому я надеюсь, что это уместно.


person Aesir    schedule 06.11.2013    source источник


Ответы (1)


Да, это правильное место, чтобы задавать вопросы.

Навес позволяет вам делать это и многие другие подобные настройки с помощью записи макросов. При открытом фонаре выберите «Инструменты» > «Записать макрос». Введите имя для этого макроса, например new_file_with_header. Затем щелкните в редакторе кода и ctrl-n или cmd-n, чтобы создать новый файл, и введите все, что хотите, вверху. Затем выберите Инструменты > Остановить запись макроса, а затем Инструменты > Редактировать макрос. Вы должны найти новый, который вы создали, и двойной щелчок по нему должен показать вам код, который он запустит, если вы его запустите. Я сделал это, просто написав # Hello world, и получил:

# -*- coding: utf-8 -*-

def run():
    code_task = get_active_task()
    code_task.new_file(factory_id='canopy.editor.code_editor', editor_type='Python')
    code_editor = code_task.active_editor
    cursor = code_editor.cursor
    cursor.write(u'# Hello world')
    code_editor.autoindent_newline()

Хорошей новостью является то, что это обычный Python, поэтому, если вы хотите добавить сегодняшнюю дату, вы можете изменить ее следующим образом:

# -*- coding: utf-8 -*-
import datetime
def run():
    code_task = get_active_task()
    code_task.new_file(factory_id='canopy.editor.code_editor', editor_type='Python')
    code_editor = code_task.active_editor
    cursor = code_editor.cursor
    cursor.write(u'# Hello world %s' % datetime.datetime.now().strftime("%H-%M-%S"))
    code_editor.autoindent_newline()

В конце концов, назначьте комбинацию клавиш, которая еще не используется, и вперед.

person jonathanrocher    schedule 06.11.2013