我搜索并搜索了。
我去了IRC
希望问题不是愚蠢的。如果是的话,谷歌搜索的正确字符串仍然会受到赞赏答案 0 :(得分:2)
使用重构引擎回答这些问题非常简单。以下代码查找系统中出现/
的所有内容:
allCodeWithSlash := RBBrowserEnvironment new matches: '/'
从那里你可以进一步搜索范围,例如在课堂内:
allCodeWithSlashInClass := allCodeWithSlash forClasses: (Array with: DosFileDirectory)
或在包裹内:
allCodeWithSlashInPackage := allCodeWithSlash forPackageNames: (Array with: 'Files')
如果您加载了UI,则可以在以下任何搜索结果中打开浏览器:
allCodeWithSlashInPackage open
如果您使用OmniBrowser,您还可以构建和导航这些范围,而无需通过重构范围菜单键入任何代码。
答案 1 :(得分:1)
这是一个示例,显示DosFileDirectory中包含字符串'\'的所有方法。
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'.
要搜索整个包,请将搜索部分包装在:
中package := PackageOrganizer default packageNamed: packageName ifAbsent: [ self error: 'package doesn't exist' ].
package classesAndMetaClasses do: [ :class | ... ]