|
Class: SmalltalkChunkFileSourceWriter
Object
|
+--AbstractSourceFileWriter
|
+--SmalltalkChunkFileSourceWriter
|
+--ChangeSet::ClassSourceWriter
- Package:
- stx:libbasic
- Category:
- Kernel-Classes-Support
- Version:
- rev:
1.35
date: 2017/07/05 08:54:12
- user: cg
- file: SmalltalkChunkFileSourceWriter.st directory: libbasic
- module: stx stc-classLibrary: libbasic
I know how to write smalltalk chunk file format
simple API
-
fileOut: aClass on: aStream
-
-
fileOut: aClass on: aStream withTimeStamp: withTimeStamp withInitialize: initIt withDefinition: withDefinition methodFilter: methodFilter encoder: encoderOrNil
-
utilities - source code
-
methodTemplate
-
return a method definition template string
** This is an obsolete interface - do not use it (it may vanish in future versions) **
-
methodTemplateForDocumentation
-
return a method definition template string
** This is an obsolete interface - do not use it (it may vanish in future versions) **
-
versionMethodTemplateForCVS
-
careful to avoid expansion by cvs here!
** This is an obsolete interface - do not use it (it may vanish in future versions) **
source writing
-
fileOut: aClass on: outStreamArg withTimeStamp: stampIt withInitialize: initIt withDefinition: withDefinition methodFilter: methodFilter
-
-
fileOut: aClass on: outStreamArg withTimeStamp: stampIt withInitialize: initIt withDefinition: withDefinition methodFilter: methodFilter encoder: encoderOrNil
-
file out my definition and all methods onto aStream.
If stampIt is true, a timeStamp comment is prepended.
If initIt is true, and the class implements a class-initialize method,
append a corresponding doIt expression for initialization.
The order by which the fileOut is done is used to put the version method at the end.
Thus, if the version string is expanded (by CVS), the characterPositions of all other methods should not move.
Notice that any extensions version method is NOT written when a project definition is saved;
it is ABSOLUTELY required, that it is saved to the extensions.st file only (because the expanded version string
would be the version string of the project definition file and NOT the version string of the extensions file).
todo: code duplication with JavaScriptSourceFileWriter - please refactor
-
fileOutAllDefinitionsOf: aNonMetaClass on: aStream
-
-
fileOutAllDefinitionsOf: aNonMetaClass on: aStream withNameSpace: withNameSpacePragma
-
append expressions on aStream, which defines myself and all of my private classes.
-
fileOutAllMethodsOf: aClass on: aStream methodFilter: methodFilter
-
-
fileOutCategory: aCategory of: aClass except: skippedMethods only: savedMethods methodFilter: methodFilter on: aStream
-
file out all methods belonging to aCategory, aString onto aStream.
If skippedMethods is nonNil, those are not saved.
If savedMethods is nonNil, only those are saved.
If both are nil, all are saved. See version-method handling in
fileOut for what this is needed.
-
fileOutCategory: aCategory of: aClass methodFilter: methodFilter on: aStream
-
file out all methods belonging to aCategory, aString onto aStream
-
fileOutClassCommentOf: aNonMetaClass on: aStream
-
-
fileOutClassInstVarDefinitionOf: aNonMetaClass on: aStream
-
-
fileOutCommentEndOn: aStream
-
Writes a comment end mark on aStream.
-
fileOutCommentLine: aString on: aStream
-
Writes a single line of comment on a comment to a stream.
-
fileOutCommentStartOn: aStream
-
Writes a comment start mark on aStream.
-
fileOutDefinitionOf: aNonMetaClass on: aStream
-
-
fileOutDefinitionOf: aNonMetaClass on: aStream withNameSpace: withNameSpacePragma
-
-
fileOutMethod: aMethod on: aStream
-
file a single method onto aStream.
-
fileOutMethods: methods on: stream
-
JV@2012-09-05: Support for filing out Java extension methods
-
fileOutPackageDefinition: pkg on: aStream
-
-
generateCallToInitializerFor: aClass on: aStream
-
-
generateHeaderWithCopyrightOn: outStream
-
if there is a copyright method, add a copyright comment
at the beginning, taking the string from the copyright method.
We cannot do this unconditionally - that would lead to my copyrights
being put on your code ;-).
On the other hand: I want every file created by myself to have the
copyright string at the beginning be preserved .... even if the
code was edited in the browser and filedOut.
-
generateTimestampOn: outStream
-
|