@ -87,13 +87,16 @@ namespace SearchAndReplace
@@ -87,13 +87,16 @@ namespace SearchAndReplace
return ;
} else {
textArea = OpenTextArea ( result . FileName ) ;
if ( textArea ! = null ) {
textArea . ActiveTextAreaControl . Caret . Position = textArea . Document . OffsetToPosition ( result . Offset ) ;
int lineNr = textArea . Document . GetLineNumberForOffset ( result . Offset ) ;
if ( ! textArea . Document . BookmarkManager . IsMarked ( lineNr ) ) {
textArea . Document . BookmarkManager . ToggleMarkAt ( lineNr ) ;
}
} else {
count - - ;
}
}
}
}
@ -129,7 +132,7 @@ namespace SearchAndReplace
@@ -129,7 +132,7 @@ namespace SearchAndReplace
return ;
} else {
TextEditorControl textArea = OpenTextArea ( result . FileName ) ;
if ( textArea ! = null ) {
if ( ! textAreas . Contains ( textArea ) ) {
textArea . BeginUpdate ( ) ;
textArea . ActiveTextAreaControl . TextArea . SelectionManager . SelectionCollection . Clear ( ) ;
@ -141,6 +144,9 @@ namespace SearchAndReplace
@@ -141,6 +144,9 @@ namespace SearchAndReplace
if ( find . CurrentDocumentInformation . Document = = null ) {
textArea . Document . Replace ( result . Offset , result . Length , transformedPattern ) ;
}
} else {
count - - ;
}
}
}
}
@ -160,14 +166,18 @@ namespace SearchAndReplace
@@ -160,14 +166,18 @@ namespace SearchAndReplace
lastResult = null ;
return ;
}
SearchResult result = find . FindNext ( ) ;
TextEditorControl textArea = null ; ;
while ( textArea = = null ) {
SearchResult result = find . FindNext ( ) ;
if ( result = = null ) {
ShowNotFoundMessage ( ) ;
find . Reset ( ) ;
lastResult = null ;
return ;
} else {
TextEditorControl textArea = OpenTextArea ( result . FileName ) ;
textArea = OpenTextArea ( result . FileName ) ;
if ( textArea ! = null ) {
if ( lastResult ! = null & & lastResult . FileName = = result . FileName & &
textArea . ActiveTextAreaControl . Caret . Offset ! = lastResult . Offset + lastResult . Length ) {
find . Reset ( ) ;
@ -180,10 +190,11 @@ namespace SearchAndReplace
@@ -180,10 +190,11 @@ namespace SearchAndReplace
textArea . ActiveTextAreaControl . TextArea . SelectionManager . SetSelection ( new DefaultSelection ( textArea . Document , textArea . Document . OffsetToPosition ( startPos ) ,
textArea . Document . OffsetToPosition ( endPos ) ) ) ;
textArea . Refresh ( ) ;
}
lastResult = result ;
}
}
}
}
static void ShowNotFoundMessage ( )
{
@ -196,11 +207,17 @@ namespace SearchAndReplace
@@ -196,11 +207,17 @@ namespace SearchAndReplace
static TextEditorControl OpenTextArea ( string fileName )
{
ITextEditorControlProvider textEditorProvider = null ;
if ( fileName ! = null ) {
return ( ( ITextEditorControlProvider ) FileService . OpenFile ( fileName ) . ViewContent ) . TextEditorControl ;
textEditorProvider = FileService . OpenFile ( fileName ) . ViewContent as ITextEditorControlProvider ;
} else {
textEditorProvider = WorkbenchSingleton . Workbench . ActiveWorkbenchWindow . ViewContent as ITextEditorControlProvider ;
}
return ( ( ITextEditorControlProvider ) WorkbenchSingleton . Workbench . ActiveWorkbenchWindow . ViewContent ) . TextEditorControl ;
if ( textEditorProvider ! = null ) {
return textEditorProvider . TextEditorControl ;
}
return null ;
}
}
}