mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 22:02:49 -06:00
104 lines
2.2 KiB
C++
104 lines
2.2 KiB
C++
#include "ide.h"
|
|
|
|
void AssistEditor::SyncNavigator()
|
|
{
|
|
if(navigator == NAV_BROWSER) {
|
|
browser.Load();
|
|
SyncCursor();
|
|
}
|
|
navigatorframe.Show(navigator);
|
|
}
|
|
|
|
void AssistEditor::SyncCursor()
|
|
{
|
|
String k = GetKeyDesc(IdeKeys::AK_SEARCHCODE().key[0]) + ") ";
|
|
browser.search.NullText(String("Find (") + k);
|
|
browser.clear.Tip(String("Clear (") + k);
|
|
if(navigator == NAV_BROWSER) {
|
|
int ii = GetCursorLine();
|
|
String coderef;
|
|
while(ii >= 0 && IsNull(coderef))
|
|
coderef = GetAnnotation(ii--);
|
|
browser.Goto(coderef, theide->editfile);
|
|
}
|
|
}
|
|
|
|
void AssistEditor::SelectionChanged()
|
|
{
|
|
CodeEditor::SelectionChanged();
|
|
SyncCursor();
|
|
SyncParamInfo();
|
|
}
|
|
|
|
void AssistEditor::BrowserGotoNF()
|
|
{
|
|
Value scope = browser.scope.GetKey(); // do not scroll browser.item erratically
|
|
int scopesc = browser.scope.GetScroll();
|
|
String item = browser.item.GetKey();
|
|
int itemsc = browser.item.GetScroll();
|
|
|
|
String cref = browser.GetCodeRef();
|
|
if(assist_active && !(theide && theide->SwapSIf(cref)))
|
|
theide->IdeGotoCodeRef(cref);
|
|
|
|
if(scope == browser.scope.GetKey()) {
|
|
browser.scope.ScrollTo(scopesc);
|
|
browser.scope.ScrollIntoCursor();
|
|
if(item == browser.item.GetKey()) {
|
|
browser.item.ScrollTo(itemsc);
|
|
browser.item.ScrollIntoCursor();
|
|
}
|
|
}
|
|
}
|
|
|
|
void AssistEditor::BrowserGoto()
|
|
{
|
|
BrowserGotoNF();
|
|
SetFocus();
|
|
}
|
|
|
|
void AssistEditor::GotoBrowserScope()
|
|
{
|
|
browser.item.GoBegin();
|
|
BrowserGoto();
|
|
}
|
|
|
|
void AssistEditor::Navigator(int nav)
|
|
{
|
|
navigator = nav;
|
|
navigatorframe.Show(navigator);
|
|
if(navigator == NAV_BROWSER) {
|
|
scope_item.Show();
|
|
browser.ClearSearch();
|
|
}
|
|
if(navigator)
|
|
SetFocus();
|
|
SyncNavigator();
|
|
SyncCursor();
|
|
}
|
|
|
|
void AssistEditor::SerializeNavigator(Stream& s)
|
|
{
|
|
int version = 1;
|
|
s / version;
|
|
s % navigatorframe;
|
|
s % navigator;
|
|
if(version >= 1)
|
|
s % scope_item;
|
|
Navigator(navigator);
|
|
}
|
|
|
|
void Ide::ToggleNavigator(int nav)
|
|
{
|
|
editor.Navigator(editor.GetNavigator() == nav ? 0 : nav);
|
|
}
|
|
|
|
void Ide::SearchCode()
|
|
{
|
|
if(editor.navigator != AssistEditor::NAV_BROWSER)
|
|
editor.Navigator(AssistEditor::NAV_BROWSER);
|
|
if(editor.browser.IsSearch())
|
|
editor.browser.ClearSearch();
|
|
else
|
|
editor.browser.search.SetFocus();
|
|
}
|