From e0e762cd941bfa7f2abd77c3704d4a935a229052 Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 10 Mar 2022 11:20:11 +0100 Subject: [PATCH] fix regex --- .../search/src/lib/context/context.tsx | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/libs/remix-ui/search/src/lib/context/context.tsx b/libs/remix-ui/search/src/lib/context/context.tsx index c6d36532e6..bbc3c72795 100644 --- a/libs/remix-ui/search/src/lib/context/context.tsx +++ b/libs/remix-ui/search/src/lib/context/context.tsx @@ -202,18 +202,28 @@ export const SearchProvider = ({ } }, []) + //*.sol, **/*.txt, contracts/* + const setGlobalExpression = (paths: string) => { + const results = [] + paths.split(',').forEach(path => { + path = path.trim() + if(path.startsWith('*.')) path = path.replace(/(\*\.)/g, '**/*.') + if(path.endsWith('/*') && !path.endsWith('/**/*')) path = path.replace(/(\*)/g, '**/*.*') + results.push(path) + }) + return results + } + useEffect(() => { if (state.find) { (async () => { const files = await getDirectory('/', plugin) const pathFilter: any = {} if (state.include){ - const includeWithGlobalExpression = state.include.replaceAll(/(\*\.)/g, '**/*.') - pathFilter.include = includeWithGlobalExpression.split(',').map(i => i.trim()) + pathFilter.include = setGlobalExpression(state.include) } if (state.exclude){ - const excludeWithGlobalExpression = state.exclude.replaceAll(/(\*\.)/g, '**/*.') - pathFilter.exclude = excludeWithGlobalExpression.split(',').map(i => i.trim()) + pathFilter.exclude = setGlobalExpression(state.exclude) } const filteredFiles = files.filter(filePathFilter(pathFilter)).map(file => { const r: SearchResult = {