Этот подход (
blockquote>MyContext.Database.Migrate();
) не для всех. Хотя это отлично подходит для приложений с локальной базой данных , большинству приложений потребуется более надежная стратегия развертывания, например, создание сценариев SQL.При развертывании в Azure вы можете добавить следующий код в метод Configure в Startup.cs
using (var scope = app.ApplicationServices.GetService
().CreateScope()) { scope.ServiceProvider.GetRequiredService ().Database.Migrate(); } . Для более подробной информации вы можете обратиться к этому SO потоку .
Существует несколько частей к этому:
indent-region
запуск, но Вы могли бы также хотеть к untabify или некоторым другим вещам.mark-whole-buffer
.Существует несколько хороших сообщений в блоге при выполнении этого здесь и здесь.
Я полагаю, что этот сценарий не делает переформатирования. Вместо этого это - пример того, как создать пользовательский "стиль", как описано в: руководство режима CC - Стили
В руководстве режима CC также говорится:
Если Вы хотите переформатировать старый код, Вы - вероятно, более обеспеченное использование некоторого другого инструмента вместо этого, например, отступа GNU, который имеет более мощные возможности переформатирования, чем Режим CC.
Я сделал это, прежде чем при помощи клавиатуры определил макрос. Я загрузил бы все файлы в emacs (что-то как find . -name "*.cpp" | xargs emacs
) и затем введите следующие ключи. Я аннотировал каждое сочетание клавиш тем, что оно делает.
C-x-( 'Begin recording macro
M-< 'Go to start of file
C-space 'Mark current location (now start of file)
M-> 'Go to end of file
M-x indent-region 'Indent entire file according to coding style
C-x C-s 'Save the current buffer
C-x C-k 'Close the current buffer
C-x-) 'End recording macro
Теперь можно выполнить это на буфере путем ввода C-x e
. При загрузке нескольких файлов, можно выполнить что-то как C-u 100 C-x e
выполнять это на 100 файлах. Если это будет больше, чем количество файлов, которое в порядке, то Вы просто получите некоторое "кольцо звонка" или другую ошибку, которую можно проигнорировать, после того как вся обработка завершена.
Если вы хотите пометить исходные файлы в буфере с задержкой, а затем запустить функцию для форматирования каждого, вы можете сделать что-нибудь например:
(defun clean-file(filename)
(your-function-goes-here))
(defun clean-each-dired-marked-file()
(interactive)
(for-each-dired-marked-file 'clean-file))
(defun for-each-dired-marked-file(fn)
"Do stuff for each marked file, only works in dired window"
(interactive)
(if (eq major-mode 'dired-mode)
(let ((filenames (dired-get-marked-files)))
(mapcar fn filenames))
(error (format "Not a Dired buffer \(%s\)" major-mode))))