Автоформат при сохранении метода в Pharo - PullRequest
3 голосов
/ 17 августа 2011

Pharo имеет встроенный форматировщик кода.Я хочу, чтобы при сохранении метода Pharo игнорировал все мое форматирование и автоматически форматировал код.Можно ли это сделать?

Ответы [ 3 ]

3 голосов
/ 17 августа 2011

Конечно, есть настройка, если вы используете Refactoring Engine и OmniBrowser: В «Браузере настроек» перейдите к Refactoring Engine> Auto Format on Accept . Существует также настройка Refactoring Engine> Auto Format on Display , которая автоматически форматирует код перед его отображением. Сами настройки форматирования находятся в Refactoring Engine> Configurable Formatter .

2 голосов
/ 28 июня 2013

Я придумал что-то вроде взлома, чтобы разобраться с сохранением метода форматирования. Это может пригодиться.

В NautilusUi -> compileSource: aText notifying: aController

добавить эту строку в начале.

self refactor formatSourceCode.

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

 **compileSource: aText notifying: aController
        | source category method |
        self refactor formatSourceCode.
        source := aText asString.
        category := self selectedCategory.
        method := self selectedMethod.
        category ifNil: [ method ifNotNil: [ category := method protocol. ]. ].
        (category isNil and: [ method isNil. ])
            ifTrue: [

                source first isUppercase
                    ifTrue: [ ^ self compileAClassFrom: source notifying: aController. ].
                category := Categorizer default.
                ]
            ifFalse: [

                (category = self allLabel and: [ self selectedMethod notNil. ])
                    ifTrue: [ category := self selectedMethod protocol. ].
                ].
        self compileAMethodFromCategory: category withSource: source notifying: aController.**
0 голосов
/ 23 апреля 2016

Для OmniBrowser я добавил этот новый метод:

OBTextMorphEditorWithShout>>accept
"
This method did not previously exist for this class.
It is a subclass hook to auto format code on accept.
"

(ORCmdFormat on: 'TargetIsNotUsed' for: self model) execute.
super accept
...