mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-14 10:02:10 +08:00
Enhance proposal popup:
* make it slightly wider and higher by default so items are better visible * again introduce a first column displaying the type of object it represents (table, view, function, keyword ...) * mask database, table and column identifiers in InsertList
This commit is contained in:
@ -6526,7 +6526,8 @@ object MainForm: TMainForm
|
|||||||
end
|
end
|
||||||
object SynCompletionProposal1: TSynCompletionProposal
|
object SynCompletionProposal1: TSynCompletionProposal
|
||||||
Options = [scoLimitToMatchedText, scoUseInsertList, scoUsePrettyText, scoUseBuiltInTimer, scoEndCharCompletion, scoCompleteWithTab, scoCompleteWithEnter]
|
Options = [scoLimitToMatchedText, scoUseInsertList, scoUsePrettyText, scoUseBuiltInTimer, scoEndCharCompletion, scoCompleteWithTab, scoCompleteWithEnter]
|
||||||
Width = 262
|
NbLinesInWindow = 12
|
||||||
|
Width = 350
|
||||||
EndOfTokenChr = '()[]. ='#9
|
EndOfTokenChr = '()[]. ='#9
|
||||||
TriggerChars = '.'
|
TriggerChars = '.'
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
@ -6541,12 +6542,11 @@ object MainForm: TMainForm
|
|||||||
TitleFont.Style = [fsBold]
|
TitleFont.Style = [fsBold]
|
||||||
Columns = <
|
Columns = <
|
||||||
item
|
item
|
||||||
BiggestWord = 'databasemore'
|
BiggestWord = 'databasemoremore'
|
||||||
BiggestWordW = 'databasemore'
|
BiggestWordW = 'databasemoremore'
|
||||||
end
|
end
|
||||||
item
|
item
|
||||||
BiggestWord = 'IHAVENOCLUEWHICHLENGTH'
|
BiggestWord = 'IHAVENOCLUEWHICHLENGTH'
|
||||||
DefaultFontStyle = [fsBold]
|
|
||||||
BiggestWordW = 'IHAVENOCLUEWHICHLENGTH'
|
BiggestWordW = 'IHAVENOCLUEWHICHLENGTH'
|
||||||
end>
|
end>
|
||||||
ItemHeight = 18
|
ItemHeight = 18
|
||||||
|
@ -4854,12 +4854,15 @@ var
|
|||||||
PrevShortToken,
|
PrevShortToken,
|
||||||
PrevLongToken : WideString;
|
PrevLongToken : WideString;
|
||||||
const
|
const
|
||||||
ItemPattern: WideString = '\image{%d}\hspace{5}%s';
|
ItemPattern: WideString = '\image{%d}\hspace{5}\color{clSilver}%s\column{}\color{clWindowText}%s';
|
||||||
|
|
||||||
procedure addTable( Fields: TFields );
|
procedure addTable( Fields: TFields );
|
||||||
var ObjName: WideString; Icon: Integer;
|
var ObjName, ObjType: WideString; Icon: Integer;
|
||||||
begin
|
begin
|
||||||
ObjName := Fields[0].AsWideString;
|
ObjName := Fields[0].AsWideString;
|
||||||
|
ObjType := '';
|
||||||
|
if Fields.FindField(DBO_TYPE) <> nil then
|
||||||
|
ObjType := LowerCase(Fields.FieldByName(DBO_TYPE).AsString);
|
||||||
case GetDBObjectType(Fields) of
|
case GetDBObjectType(Fields) of
|
||||||
NODETYPE_TABLE: Icon := ICONINDEX_TABLE;
|
NODETYPE_TABLE: Icon := ICONINDEX_TABLE;
|
||||||
NODETYPE_CRASHED_TABLE: Icon := ICONINDEX_CRASHED_TABLE;
|
NODETYPE_CRASHED_TABLE: Icon := ICONINDEX_CRASHED_TABLE;
|
||||||
@ -4868,8 +4871,8 @@ const
|
|||||||
NODETYPE_VIEW: Icon := ICONINDEX_VIEW;
|
NODETYPE_VIEW: Icon := ICONINDEX_VIEW;
|
||||||
else Icon := -1;
|
else Icon := -1;
|
||||||
end;
|
end;
|
||||||
SynCompletionProposal1.InsertList.Add( ObjName );
|
SynCompletionProposal1.InsertList.Add( Mask(ObjName) );
|
||||||
SynCompletionProposal1.ItemList.Add( WideFormat(ItemPattern, [Icon, ObjName]) );
|
SynCompletionProposal1.ItemList.Add( WideFormat(ItemPattern, [Icon, ObjType, ObjName]) );
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure addColumns( tablename: WideString );
|
procedure addColumns( tablename: WideString );
|
||||||
@ -4892,8 +4895,8 @@ const
|
|||||||
if ds = nil then exit;
|
if ds = nil then exit;
|
||||||
for i:=0 to ds.RecordCount-1 do
|
for i:=0 to ds.RecordCount-1 do
|
||||||
begin
|
begin
|
||||||
SynCompletionProposal1.InsertList.Add( ds.FieldByName( 'Field' ).AsWideString );
|
SynCompletionProposal1.InsertList.Add( Mask(ds.FieldByName( 'Field' ).AsWideString) );
|
||||||
SynCompletionProposal1.ItemList.Add( WideFormat(ItemPattern, [ICONINDEX_FIELD, ds.FieldByName('Field').AsWideString + ' \color{clSilver}' + ds.FieldByName('Type').AsString]) );
|
SynCompletionProposal1.ItemList.Add( WideFormat(ItemPattern, [ICONINDEX_FIELD, GetFirstWord(ds.FieldByName('Type').AsString), ds.FieldByName('Field').AsWideString]) );
|
||||||
ds.Next;
|
ds.Next;
|
||||||
end;
|
end;
|
||||||
ds.Close;
|
ds.Close;
|
||||||
@ -4984,15 +4987,12 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if (SynCompletionProposal1.ItemList.count = 0) and (Length(CurrentInput)>0) then
|
if (SynCompletionProposal1.ItemList.count = 0) and (Length(CurrentInput)>0) then begin
|
||||||
begin
|
|
||||||
// Add databases
|
// Add databases
|
||||||
for i := 0 to Databases.Count - 1 do begin
|
for i := 0 to Databases.Count - 1 do begin
|
||||||
SynCompletionProposal1.InsertList.Add(Databases[i]);
|
SynCompletionProposal1.InsertList.Add(Mask(Databases[i]));
|
||||||
SynCompletionProposal1.ItemList.Add(Databases[i]);
|
SynCompletionProposal1.ItemList.Add(WideFormat(ItemPattern, [ICONINDEX_DB, 'database', Databases[i]]));
|
||||||
end;
|
end;
|
||||||
for i:=0 to SynCompletionProposal1.ItemList.count-1 do
|
|
||||||
SynCompletionProposal1.ItemList[i] := WideFormat(ItemPattern, [ICONINDEX_DB, SynCompletionProposal1.ItemList[i]]);
|
|
||||||
|
|
||||||
if ActiveDatabase <> '' then begin
|
if ActiveDatabase <> '' then begin
|
||||||
// Display tables from current db
|
// Display tables from current db
|
||||||
@ -5006,20 +5006,18 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// Add functions
|
// Add functions
|
||||||
for i := 0 to Length(MySQLFunctions) - 1 do
|
for i := 0 to Length(MySQLFunctions) - 1 do begin
|
||||||
begin
|
|
||||||
// Don't display unsupported functions here
|
// Don't display unsupported functions here
|
||||||
if MySqlFunctions[i].Version > mysql_version then
|
if MySqlFunctions[i].Version > mysql_version then
|
||||||
continue;
|
continue;
|
||||||
SynCompletionProposal1.InsertList.Add( MySQLFunctions[i].Name + MySQLFunctions[i].Declaration );
|
SynCompletionProposal1.InsertList.Add( MySQLFunctions[i].Name + MySQLFunctions[i].Declaration );
|
||||||
SynCompletionProposal1.ItemList.Add( WideFormat(ItemPattern, [ICONINDEX_FUNCTION, MySQLFunctions[i].Name + '\color{clSilver}' + MySQLFunctions[i].Declaration] ) );
|
SynCompletionProposal1.ItemList.Add( WideFormat(ItemPattern, [ICONINDEX_FUNCTION, 'function', MySQLFunctions[i].Name + '\color{clSilver}' + MySQLFunctions[i].Declaration] ) );
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Add keywords
|
// Add keywords
|
||||||
for i := 0 to MYSQL_KEYWORDS.Count - 1 do
|
for i := 0 to MYSQL_KEYWORDS.Count - 1 do begin
|
||||||
begin
|
|
||||||
SynCompletionProposal1.InsertList.Add( MYSQL_KEYWORDS[i] );
|
SynCompletionProposal1.InsertList.Add( MYSQL_KEYWORDS[i] );
|
||||||
SynCompletionProposal1.ItemList.Add( WideFormat(ItemPattern, [ICONINDEX_KEYWORD, MYSQL_KEYWORDS[i]] ) );
|
SynCompletionProposal1.ItemList.Add( WideFormat(ItemPattern, [ICONINDEX_KEYWORD, 'keyword', MYSQL_KEYWORDS[i]] ) );
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
Reference in New Issue
Block a user