Couple more answers.

On Sat, Oct 01, 2016 at 09:29:51AM -0700, CodeDmitry wrote:
> 3. Is it possible to prevent Pharo from screwing up indenting of my class
> definitions when I save?(It keeps replacing leading spaces with a tab). If
> so how?

Yes and no, you can specify indent string in "Code Browsing > BlueInk Pretty 
Printing",
however when you press "tab" it will still insert tab. This setting only 
applies to autoformatting. (ctrl+shift+f).

As for class definition, the implementation is in ClassDescription>>definition, 
where you can see things like

        aStream cr; tab; nextPutAll: 'instanceVariableNames: ';
                store: self instanceVariablesString.

so you would need to change >aStream cr; tab< into >aStream cr; nextPutAll: 
'your indentation spaces'<

Or you can do that en masse...

newCode := (ClassDescription>>#definition) sourceCode copyReplaceAll: 'tab;' 
with: '''    '';'.
ClassDescription compile: newCode.

And add that code into a StartupScript or somewhere.

> 
> 4. How can I create a Pharo package from Playground using code?

RPackage organizer createPackageNamed: 'Hello'.

> 
> I suspect 4 and 5 are possible because Pharo allows dynamic
> insertion/removal of methods from classes using the class method dictionary
> and runtime compile. 

As a bonus in answer to "3." you can also see how to dynamically compile a 
method. :)

Peter

Reply via email to