package searchfiles include SearchForm.feather include SearchBehaviour.feather include SearchRow.feather import Utilities class SearchFiles : SimpleComponent() { /** * Files larger than this will not be searched. */ class var MAX_FILE_SIZE = 1_000_000L // ==== register ==== override meth register() { addFeatures( Context.FOLDER ).apply { val searchFolder = contextAction( "Search Folder", ::searchAction ) .icon("search") menus( MenuFeature( "Folder", searchFolder ) ) contextMenu( searchFolder ) } addFeatures( Context.TEXT_FILE ).apply { val searchFile = contextAction( "Search File", ::searchAction ) .icon("search") menus( MenuFeature( "File", searchFile ) ) contextMenu( searchFile ) } } // ==== Actions ==== func searchAction( context : Context ) { search( context.value as File ) } // ==== API ==== func search( start : File ) { SearchForm( start ).promptInNewTab() } }