rdesktop^2
filip mertens 1 year ago
parent d1073ed322
commit 7dac9f1731
  1. 24
      libs/remix-ui/search/src/lib/components/results/SearchHelper.ts
  2. 2
      libs/remix-ui/search/src/lib/context/context.tsx

@ -1,9 +1,18 @@
import { EOL } from 'os' import { EOL } from 'os'
import { SearchResultLineLine } from '../../types' import { SearchResultLineLine } from '../../types'
import isElectron from 'is-electron'
export const getDirectory = async (dir: string, plugin: any) => { export const getDirectory = async (dir: string, plugin: any) => {
let result = [] let result = []
if (isElectron()) {
const files = await plugin.call('fs', 'glob', dir, '**/*')
// only get path property of files
result = files.map(x => x.path)
} else {
const files = await plugin.call('fileManager', 'readdir', dir) const files = await plugin.call('fileManager', 'readdir', dir)
const fileArray = normalize(files) const fileArray = normalize(files)
for (const fi of fileArray) { for (const fi of fileArray) {
@ -16,10 +25,11 @@ export const getDirectory = async (dir: string, plugin: any) => {
} }
} }
} }
return result
} }
return result
}
const normalize = filesList => { const normalize = filesList => {
const folders = [] const folders = []
const files = [] const files = []
Object.keys(filesList || {}).forEach(key => { Object.keys(filesList || {}).forEach(key => {
@ -36,7 +46,7 @@ export const getDirectory = async (dir: string, plugin: any) => {
} }
}) })
return [...folders, ...files] return [...folders, ...files]
} }
export const findLinesInStringWithMatch = (str: string, re: RegExp) => { export const findLinesInStringWithMatch = (str: string, re: RegExp) => {
return str return str
@ -54,7 +64,7 @@ export const findLinesInStringWithMatch = (str: string, re: RegExp) => {
const matchesInString = (str: string, re: RegExp) => { const matchesInString = (str: string, re: RegExp) => {
let a: RegExpExecArray let a: RegExpExecArray
const results:RegExpExecArray[] = []; const results: RegExpExecArray[] = [];
while ((a = re.exec(str || '')) !== null) { while ((a = re.exec(str || '')) !== null) {
results.push(a); results.push(a);
} }
@ -63,11 +73,11 @@ const matchesInString = (str: string, re: RegExp) => {
const splitLines = (matchResult: RegExpExecArray[], lineNumber: number) => { const splitLines = (matchResult: RegExpExecArray[], lineNumber: number) => {
return matchResult.map((matchResultPart, i) => { return matchResult.map((matchResultPart, i) => {
const result:SearchResultLineLine = { const result: SearchResultLineLine = {
left: matchResultPart.input.substring(0, matchResultPart.index), left: matchResultPart.input.substring(0, matchResultPart.index),
right: matchResultPart.input.substring(matchResultPart.index + matchResultPart[0].length), right: matchResultPart.input.substring(matchResultPart.index + matchResultPart[0].length),
center: matchResultPart[0], center: matchResultPart[0],
position : { position: {
start: { start: {
line: lineNumber, line: lineNumber,
column: matchResultPart.index, column: matchResultPart.index,
@ -92,7 +102,7 @@ function getEOL(text) {
return u > w ? '\n' : '\r\n'; return u > w ? '\n' : '\r\n';
} }
export const replaceAllInFile = (string: string, re:RegExp, newText: string) => { export const replaceAllInFile = (string: string, re: RegExp, newText: string) => {
return string.replace(re, newText) return string.replace(re, newText)
} }

@ -311,7 +311,6 @@ export const SearchProvider = ({
} }
useEffect(() => { useEffect(() => {
return
plugin.on('filePanel', 'setWorkspace', async workspace => { plugin.on('filePanel', 'setWorkspace', async workspace => {
value.setSearchResults(null) value.setSearchResults(null)
value.clearUndo() value.clearUndo()
@ -418,6 +417,7 @@ export const SearchProvider = ({
}, [state.count]) }, [state.count])
useEffect(() => { useEffect(() => {
console.log('STATE CHANGED', files)
if (state.find) { if (state.find) {
(async () => { (async () => {
try { try {

Loading…
Cancel
Save