Aradım ve arandı. Squeak smalltalk'ta bir sınıf içinde bir dize nasıl aranır? Bir paketin içine ne dersin?
ben soru saçma değil UmutIRC
gitti. Öyleyse, google'da arama yapmak için doğru dize hala çok beğenilecekAradım ve arandı. Squeak smalltalk'ta bir sınıf içinde bir dize nasıl aranır? Bir paketin içine ne dersin?
ben soru saçma değil UmutIRC
gitti. Öyleyse, google'da arama yapmak için doğru dize hala çok beğenilecekİşte size, '\' dizesini içeren DosFileDirectory uygulamasında tüm yöntemleri gösteren bir örnek.
aString := '\\'.
class := DosFileDirectory.
methodsContainingString := class methodDictionary values select: [:method |
method hasLiteralSuchThat: [:lit |
(lit isString and: [lit isSymbol not]) and:
[lit = aString]]].
messageList := methodsContainingString collect: [ :e | MethodReference new setStandardClass: class methodSymbol: e selector ].
SystemNavigation new
browseMessageList: messageList
name: 'methods containing string'.
, bir paket arama arama bölümünü sarmak için:
package := PackageOrganizer default packageNamed: packageName ifAbsent: [ self error: 'package doesn't exist' ].
package classesAndMetaClasses do: [ :class | ... ]
yeniden düzenleme motoru ile bu tür soruları yanıtlayan oldukça kolaydır.
allCodeWithSlash := RBBrowserEnvironment new matches: '/'
Oradan daha fazla olabilir kapsam arama, örneğin: Aşağıdaki kod sisteminde /
tüm oluşumlarını bulur Bir sınıf içinde:
allCodeWithSlashInPackage open
: Bir UI yüklenen varsa
allCodeWithSlashInPackage := allCodeWithSlash forPackageNames: (Array with: 'Files')
, bu arama sonuçlarında herhangi bir tarayıcıyı açabilirsiniz:
allCodeWithSlashInClass := allCodeWithSlash forClasses: (Array with: DosFileDirectory)
Veya paket içerisinde
OmniBrowser kullanıyorsanız, Refactoring kapsamı menüsünden herhangi bir kod yazmadan da bu kapsamları oluşturabilir ve gezinebilirsiniz.
FileOut hakkında biliyorum. Ama daha iyi bir yolu olmalı. – josinalvo
Gerçek bir cevap değil, gerçek formda belirli yöntemleri yeniden yorumlama önerisi için http://squeak.preeminent.org/tut2007/html/035B.html adresine bakın. Bu gönderenleri arayarak kolayca bulabileceğiniz yöntem çağrıları. –