He buscado y buscado.¿Cómo buscar una cadena dentro de una clase en Squeak smalltalk? ¿Qué tal dentro de un paquete?
Fui a IRC
Esperamos que la pregunta no es tonta. Si lo fuera, la cadena derecha para buscar en google aún sería muy apreciada
He buscado y buscado.¿Cómo buscar una cadena dentro de una clase en Squeak smalltalk? ¿Qué tal dentro de un paquete?
Fui a IRC
Esperamos que la pregunta no es tonta. Si lo fuera, la cadena derecha para buscar en google aún sería muy apreciada
Aquí hay un ejemplo que muestra todos los métodos en DosFileDirectory que contienen la cadena '\'.
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'.
Para buscar un paquete completo, envuelva la parte de búsqueda en:
package := PackageOrganizer default packageNamed: packageName ifAbsent: [ self error: 'package doesn't exist' ].
package classesAndMetaClasses do: [ :class | ... ]
responder a estas preguntas con el motor refactorización es bastante fácil. El código siguiente busca todas las apariciones de /
en el sistema:
allCodeWithSlash := RBBrowserEnvironment new matches: '/'
Desde allí se puede ampliar el alcance de la búsqueda, por ejemplo, a dentro de una clase:
allCodeWithSlashInClass := allCodeWithSlash forClasses: (Array with: DosFileDirectory)
o dentro de un paquete:
allCodeWithSlashInPackage := allCodeWithSlash forPackageNames: (Array with: 'Files')
Si ha cargado una interfaz de usuario, puede abrir un navegador en cualquiera de estos resultados de búsqueda:
allCodeWithSlashInPackage open
Si usa OmniBrowser, también puede compilar y navegar estos ámbitos sin escribir ningún código a través del menú Refactoring scope.
Sé de fileOut. Pero tiene que haber una forma mejor – josinalvo
No es una respuesta real, pero vea http://squeak.preeminent.org/tut2007/html/035B.html por su sugerencia de dejar comentarios a usted mismo para volver a visitar métodos particulares en la forma de real llamadas a métodos que puede encontrar fácilmente buscando a esos remitentes. –