diff --git a/.gitattributes b/.gitattributes index 49e395f862..837b06e006 100644 --- a/.gitattributes +++ b/.gitattributes @@ -113,7 +113,6 @@ designer/customeditor.pp svneol=native#text/pascal designer/designer.pp svneol=native#text/pascal designer/designermenu.pp svneol=native#text/pascal designer/designerprocs.pas svneol=native#text/pascal -designer/designerstr.pas svneol=native#text/pascal designer/filesystem.pp svneol=native#text/pascal designer/graphpropedits.pas svneol=native#text/pascal designer/jitforms.pp svneol=native#text/pascal diff --git a/components/codetools/finddeclarationtool.pas b/components/codetools/finddeclarationtool.pas index d37aa05eb9..2e4cb9c744 100644 --- a/components/codetools/finddeclarationtool.pas +++ b/components/codetools/finddeclarationtool.pas @@ -33,7 +33,7 @@ - Get and Set property access parameter lists - predefined funcs Pred, Succ, Val, Low, High - find declaration in dead code - - make @Proc context sensitive + - make @Proc context sensitive (started but not complete) - operator overloading - ppu, ppw, dcu files } @@ -73,55 +73,114 @@ type TFindDeclarationTool = class; TVariableAtomType = ( - vatNone, vatSpace, vatIdentifier, vatPreDefIdentifier, vatPoint, vatAS, - vatINHERITED, vatUp, vatRoundBracketOpen, vatRoundBracketClose, - vatEdgedBracketOpen, vatEdgedBracketClose, vatAddrOp); + vatNone, // undefined + vatSpace, // empty or space + vatIdentifier, // an identifier + vatPreDefIdentifier, // an identifier with special meaning to the compiler + vatPoint, // . + vatAS, // AS keyword + vatINHERITED, // INHERITED keyword + vatUp, // ^ + vatRoundBracketOpen, // ( + vatRoundBracketClose,// ) + vatEdgedBracketOpen, // [ + vatEdgedBracketClose,// ] + vatAddrOp // @ + ); + const + // for nicer output VariableAtomTypeNames: array[TVariableAtomType] of string = - ('','Space','Ident','PreDefIdent','Point','AS','INHERITED','Up^ ', - 'Bracket(','Bracket)','Bracket[','Bracket]', 'AddrOperator@ '); + ('', + 'Space', + 'Ident', + 'PreDefIdent', + 'Point', + 'AS', + 'INHERITED', + 'Up^ ', + 'Bracket(', + 'Bracket)', + 'Bracket[', + 'Bracket]', + 'AddrOperator@ ' + ); type // searchpath delimiter is semicolon TOnGetSearchPath = function(Sender: TObject): string of object; + TOnGetCodeToolForBuffer = function(Sender: TObject; Code: TCodeBuffer): TFindDeclarationTool of object; + // flags/states for searching TFindDeclarationFlag = ( - fdfSearchInParentNodes, // if identifier not found in current context, - // proceed in prior nodes on same lvl and parents fdfSearchInAncestors, // if context is a class, search also in // ancestors/interfaces + fdfSearchInParentNodes, // if identifier not found in current context, + // proceed in prior nodes on same lvl and parents fdfIgnoreCurContextNode,// skip context and proceed in prior/parent context + fdfIgnoreUsedUnits, // stay in current source + fdfSearchForward, // instead of searching in prior nodes, search in + // next nodes (successors) + fdfExceptionOnNotFound, // raise exception if identifier not found // predefined identifiers will not raise fdfExceptionOnPredefinedIdent,// raise an exception even if the identifier // is an predefined exception - fdfIgnoreUsedUnits, // stay in current source - fdfSearchForward, // instead of searching in prior nodes, search in - // next nodes (successors) + fdfIgnoreClassVisibility,//find inaccessible private+protected fields fdfClassPublished, fdfClassPublic, fdfClassProtected, fdfClassPrivate, + fdfIgnoreMissingParams, // found proc fits, even if parameters are missing fdfOnlyCompatibleProc, // incompatible procs are ignored - fdfFunctionResult, // if function is found, return result type fdfIgnoreOverloadedProcs,// ignore param lists and take the first proc found + fdfFindVariable, // do not search for the base type of a variable, // instead return the variable declaration + fdfFunctionResult, // if function is found, return result type + fdfCollect, // return every reachable identifier fdfTopLvlResolving // set, when searching for an identifier of the // top lvl variable ); TFindDeclarationFlags = set of TFindDeclarationFlag; +const + // for nicer output + FindDeclarationFlagNames: array[TFindDeclarationFlag] of string = ( + 'fdfSearchInAncestors', + 'fdfSearchInParentNodes', + 'fdfIgnoreCurContextNode', + 'fdfIgnoreUsedUnits', + 'fdfSearchForward', + 'fdfExceptionOnNotFound', + 'fdfExceptionOnPredefinedIdent', + 'fdfIgnoreClassVisibility', + 'fdfClassPublished', + 'fdfClassPublic', + 'fdfClassProtected', + 'fdfClassPrivate', + 'fdfIgnoreMissingParams', + 'fdfOnlyCompatibleProc', + 'fdfIgnoreOverloadedProcs', + 'fdfFindVariable', + 'fdfFunctionResult', + 'fdfCollect', + 'fdfTopLvlResolving' + ); + +type + // flags/states for result TFoundDeclarationFlag = ( fdfDoNotCache ); TFoundDeclarationFlags = set of TFoundDeclarationFlag; + TFindDeclarationParams = class; TFindContext = record @@ -137,11 +196,38 @@ type The Freepascal compiler can automatically convert them } TExpressionTypeDesc = ( - xtNone, xtContext, xtChar, xtReal, xtSingle, xtDouble, - xtExtended, xtCurrency, xtComp, xtInt64, xtCardinal, xtQWord, xtBoolean, - xtByteBool, xtLongBool, xtString, xtAnsiString, xtShortString, xtWideString, - xtPChar, xtPointer, xtFile, xtText, xtConstOrdInteger, xtConstString, - xtConstReal, xtConstSet, xtConstBoolean, xtLongInt, xtWord, xtNil); + xtNone, // undefined + xtContext, // a node + xtChar, // char + xtReal, // real + xtSingle, // single + xtDouble, // double + xtExtended, // extended + xtCurrency, // currency + xtComp, // comp + xtInt64, // int64 + xtCardinal, // cardinal + xtQWord, // qword + xtBoolean, // boolean + xtByteBool, // bytebool + xtLongBool, // longbool + xtString, // string + xtAnsiString,// ansistring + xtShortString,// shortstring + xtWideString,// widestring + xtPChar, // pchar + xtPointer, // pointer + xtFile, // file + xtText, // text + xtConstOrdInteger,// enums, number, integer + xtConstString,// string, string constant, char constant + xtConstReal, // real number + xtConstSet, // [] set + xtConstBoolean,// true, false + xtLongint, // longint + xtWord, // word + xtNil // nil = pointer, class, procedure, method, ... + ); TExpressionTypeDescs = set of TExpressionTypeDesc; const @@ -155,7 +241,7 @@ const xtAllTypes = [Low(TExpressionTypeDesc)..High(TExpressionTypeDesc)]-[xtNone]; xtAllPredefinedTypes = xtAllTypes-[xtContext]; - xtAllIntegerTypes = [xtInt64, xtQWord, xtConstOrdInteger, xtLongInt, xtWord]; + xtAllIntegerTypes = [xtInt64, xtQWord, xtConstOrdInteger, xtLongint, xtWord]; xtAllBooleanTypes = [xtBoolean, xtByteBool, xtLongBool]; xtAllRealTypes = [xtReal, xtConstReal, xtSingle, xtDouble, xtExtended, xtCurrency, xtComp]; @@ -196,7 +282,7 @@ type const TypeCompatibilityNames: array[TTypeCompatibility] of string = ( 'Exact', - 'Compatible', // convertable, but not usable for var params + 'Compatible', // convertable, but not allowed for var params 'Incompatible' ); @@ -292,6 +378,9 @@ type procedure ClearInput; procedure ClearFoundProc; end; + + + { TFindDeclarationTool } TFindDeclarationTool = class(TPascalParserTool) private @@ -448,28 +537,6 @@ const fdfDefaultForExpressions = [fdfSearchInParentNodes, fdfSearchInAncestors, fdfExceptionOnNotFound]+fdfAllClassVisibilities; - FindDeclarationFlagNames: array[TFindDeclarationFlag] of string = ( - 'fdfSearchInParentNodes', - 'fdfSearchInAncestors', - 'fdfIgnoreCurContextNode', - 'fdfExceptionOnNotFound', - 'fdfExceptionOnPredefinedIdent', - 'fdfIgnoreUsedUnits', - 'fdfSearchForward', - 'fdfIgnoreClassVisibility', - 'fdfClassPublished', - 'fdfClassPublic', - 'fdfClassProtected', - 'fdfClassPrivate', - 'fdfIgnoreMissingParams', - 'fdfOnlyCompatibleProc', - 'fdfFunctionResult', - 'fdfIgnoreOverloadedProcs', - 'fdfFindVariable', - 'fdfCollect', - 'fdfTopLvlResolving' - ); - function ExprTypeToString(ExprType: TExpressionType): string; function CreateFindContext(NewTool: TFindDeclarationTool; NewNode: TCodeTreeNode): TFindContext; diff --git a/designer/designerstr.pas b/designer/designerstr.pas deleted file mode 100644 index 0ddca33b5d..0000000000 --- a/designer/designerstr.pas +++ /dev/null @@ -1,15 +0,0 @@ -unit DesignerStr; - -{$mode objfpc}{$H+} - -interface - -resourcestring - - // component editors commands - liscAdd = '&Add'; - liscDelete = '&Delete'; - -implementation - -end. \ No newline at end of file diff --git a/ide/editoroptions.pp b/ide/editoroptions.pp index 12a91ae483..ba27a4ab1f 100644 --- a/ide/editoroptions.pp +++ b/ide/editoroptions.pp @@ -51,7 +51,8 @@ uses {$else} mwCustomEdit, mwPasSyn, mwHighlighter, {$endif} - Laz_XMLCfg, CodeTemplateDialog, KeyMapping, InputHistory, IDEOptionDefs, LazarusIDEStrConsts; + Laz_XMLCfg, CodeTemplateDialog, KeyMapping, InputHistory, IDEOptionDefs, + LazarusIDEStrConsts; type {$ifdef NEW_EDITOR_SYNEDIT} @@ -72,7 +73,8 @@ type lshCPP, lshPerl); TAdditionalHilightAttribute = (ahaNone, ahaTextBlock, ahaExecutionPoint, - ahaEnabledBreakpoint, ahaDisabledBreakpoint, ahaInvalidBreakpoint, ahaErrorLine); + ahaEnabledBreakpoint, ahaDisabledBreakpoint, ahaInvalidBreakpoint, + ahaErrorLine); const EditorOptsFormatVersion = 2; @@ -2895,7 +2897,7 @@ function TEditorOptionsForm.KeyMappingRelationToString( var s:AnsiString; begin with KeyRelation do begin - Result:=copy(Name,1,37); + Result:=copy(EditorCommandLocalizedName(Command,Name),1,37); if length(Result)<37 then begin SetLength(s,(37-length(Result))); FillChar(s[1],length(s),' '); diff --git a/ide/findreplacedialog.pp b/ide/findreplacedialog.pp index f66b12a2b3..ac7cc61af0 100644 --- a/ide/findreplacedialog.pp +++ b/ide/findreplacedialog.pp @@ -329,6 +329,7 @@ procedure TLazFindReplaceDialog.TextToFindComboBoxKeyDown( Sender: TObject; var Key:Word; Shift:TShiftState); var Component: TFindDlgComponent; begin + //writeln('TLazFindReplaceDialog.TextToFindComboBoxKeyDown Key=',Key); if (Key=VK_RETURN) then OkButtonClick(Sender) else if (Key=VK_ESCAPE) then diff --git a/ide/keymapping.pp b/ide/keymapping.pp index b90644c9d3..4e087935b5 100644 --- a/ide/keymapping.pp +++ b/ide/keymapping.pp @@ -299,6 +299,8 @@ function ShowKeyMappingEditForm(Index:integer; function KeyStrokesConsistencyErrors(ASynEditKeyStrokes:TSynEditKeyStrokes; Protocol: TStrings; var Index1,Index2:integer):integer; function EditorCommandToDescriptionString(cmd: word):AnsiString; +function EditorCommandLocalizedName(cmd: word; + const DefaultName: string): string; function StrToVKCode(const s: string): integer; var KeyMappingEditForm: TKeyMappingEditForm; @@ -316,6 +318,11 @@ const VirtualKeyStrings: TStringHashList = nil; +function EditorCommandLocalizedName(cmd: word; + const DefaultName: string): string; +begin + Result:=DefaultName; +end; function StrToVKCode(const s: string): integer; var @@ -747,14 +754,14 @@ var VK_LWIN :AddStr('left windows key'); VK_RWIN :AddStr('right windows key'); VK_APPS :AddStr('application key'); - VK_NUMPAD0..VK_NUMPAD9:AddStr('Numpad '+IntToStr(Key-VK_NUMPAD0)); + VK_NUMPAD0..VK_NUMPAD9: begin AddStr('Numpad ');AddStr(IntToStr(Key-VK_NUMPAD0)); end; VK_MULTIPLY :AddStr('*'); VK_ADD :AddStr('+'); VK_SEPARATOR :AddStr('|'); VK_SUBTRACT :AddStr('-'); VK_DECIMAL :AddStr('.'); VK_DIVIDE :AddStr('/'); - VK_F1..VK_F24 :AddStr('F'+IntToStr(Key-VK_F1+1)); + VK_F1..VK_F24 :begin AddStr('F'); AddStr(IntToStr(Key-VK_F1+1)); end; VK_NUMLOCK :AddStr('Numlock'); VK_SCROLL :AddStr('Scroll'); VK_EQUAL :AddStr('='); @@ -1025,10 +1032,7 @@ begin ACaption:='No No No'; AText:=' The key "'+KeyAndShiftStateToStr(NewKey1,NewShiftState1)+'"' +' is already connected to "'+DummyRelation.Name+'".'; - -// Application.MessageBox(PChar(AText),PChar(ACaption),0); MessageDlg(ACaption,AText,mterror,[mbok],0); - exit; end; NewKey2:=StrToVKCode(Key2KeyComboBox.Text); diff --git a/ide/lazarusidestrconsts.pas b/ide/lazarusidestrconsts.pas index 5fd037d9a6..48882d1635 100644 --- a/ide/lazarusidestrconsts.pas +++ b/ide/lazarusidestrconsts.pas @@ -27,6 +27,10 @@ * * *************************************************************************** } +{ + Note: All resource strings should be prefixed with 'lis' + +} unit LazarusIDEStrConsts; {$mode objfpc}{$H+} @@ -282,149 +286,150 @@ resourcestring //palletes, for example 'Примеры' and 'Samples' ideDataAccess = 'Data Access'; ideInterbase = 'Interbase Data Access'; -//Environment dialogue -dlgEnvOpts = 'Environment Options'; -dlgDesktop = 'Desktop'; -dlgFrmEditor = 'Form Editor'; -dlgObjInsp = 'Object Inspector'; -dlgEnvFiles = 'Files'; -dlgEnvBckup = 'Backup'; -dlgNaming = 'Naming'; -dlgCancel = 'Cancel'; -dlgEnvLanguage = 'Language'; -dlgAutoSave = 'Auto save'; -dlgEdFiles = 'Editor files'; -dlgEnvProject = 'Project'; -dlgIntvInSec = 'Interval in secs'; -dlgDesktopFiles = 'Desktop files'; -dlgSaveDFile = 'Save desktop settings to file'; -dlgLoadDFile = 'Load desktop settings from file'; -dlgPalHints = 'Hints for component palette'; -dlgSpBHints = 'Hints for main speed buttons (open, save, ...)'; -dlgWinPos = 'Window Positions'; -dlgMainMenu = 'Main Menu'; -dlgSrcEdit = 'Source Editor'; -dlgMsgs = 'Messages'; -dlgProjFiles = 'Project files'; -dlgEnvType = 'Type'; -dlgEnvNone = 'None'; -dlgSmbFront = 'Symbol in front (.~pp)'; -dlgSmbBehind = 'Symbol behind (.pp~)'; -dlgSmbCounter = 'Counter (.pp;1)'; -dlgCustomExt = 'User defined extension (.pp.xxx)'; -dlgBckUpSubDir = 'Same name (in subdirectory)'; -dlgEdCustomExt = 'User defined extension'; -dlgMaxCntr = 'Maximum counter'; -dlgEdBSubDir = 'Sub directory'; -dlgEnvOtherFiles = 'Other files'; -dlgMaxRecentFiles = 'Max recent files'; -dlgMaxRecentProjs = 'Max recent project files'; -dlgQOpenLastPrj = 'Open last project at start'; -dlgLazarusDir = 'Lazarus directory (default for all projects)'; -dlgFpcPath = 'Compiler path (ppc386)'; -dlgFpcSrcPath = 'FPC source directory'; -dlgDebugType = 'Debugger type and path'; -dlgTestPrjDir = 'Directory for building test projects'; -dlgQShowGrid = 'Show grid'; -dlgGridColor = 'Grid color'; -dlgQSnapToGrid = 'Snap to grid'; -dlgGridX = 'Grid size X'; -dlgGridY = 'Grid size Y'; -dlgGuideLines = 'Show Guide Lines'; -dlgSnapGuideLines = 'Snap to Guide Lines'; -dlgLeftTopClr = 'color for left, top'; -dlgRightBottomClr = 'color for right, bottom'; -dlgShowCaps = 'Show component captions'; -dlgShowEdrHints = 'Show editor hints'; -dlgAutoForm = 'Auto create forms'; -dlgEnvGrid = 'Grid'; -dlgEnvLGuideLines = 'Guide lines'; -dlgEnvMisc = 'Miscellaneous'; -dlgPasExt = 'Default pascal extension'; -dlgPasLower = 'Save pascal files lowercase'; -dlgAmbigFileAct = 'Ambigious file action:'; -//TODO Make it -dlgEnvAsk = 'Ask'; -dlgAutoDel = 'Auto delete file'; -dlgAutoRen = 'Auto rename file'; -dlgAmbigWarn = 'Warn on compile'; -dlgIgnoreVerb = 'Ignore'; -//It''s OK then -dlgBackColor = 'Background color'; -dlgEnvColors = 'Colors'; -dlgEnvNotes = 'Notes: '; -dlgEdOptsCap = 'Editor Options'; -dlgEdDisplay = 'Display'; -dlgKeyMapping = 'Key Mappings'; -dlgEdColor = 'Color'; -dlgKeyMappingErrors = 'Key mapping errors'; -dlgEdBack = 'Back'; -dlgReport = 'Report'; -dlgEdNoErr = 'No errors in key mapping found.'; -dlgDelTemplate = 'Delete template '; -dlgChsCodeTempl = 'Choose code template file (*.dci)'; -dlgAllFiles = 'All files'; -dlgAltSetClMode = 'Alt Sets Column Mode'; -dlgAutoIdent = 'Auto Indent'; -dlgBracHighlight = 'Bracket Highlight'; -dlgDragDropEd = 'Drag Drop Editing'; -dlgDropFiles = 'Drop Files'; -dlgHalfPageScroll = 'Half Page Scroll'; -dlgKeepCaretX = 'Keep Caret X'; -dlgPersistentCaret = 'Persistent Caret'; -dlgScrollByOneLess = 'Scroll By One Less'; -dlgScrollPastEndFile = 'Scroll Past End of File'; -dlgScrollPastEndLine = 'Scroll Past End of Line'; -dlgCloseButtonsNotebook = 'Close buttons in notebook'; -dlgShowScrollHint = 'Show Scroll Hint'; -dlgSmartTabs = 'Smart Tabs'; -dlgTabsToSpaces = 'Tabs To Spaces'; -dlgTrimTrailingSpaces = 'Trim Trailing Spaces'; -dlgUndoAfterSave = 'Undo after save'; -dlgDoubleClickLine = 'Double click line'; -dlgFindTextatCursor = 'Find text at cursor'; -dlgUseSyntaxHighlight = 'Use syntax highlight'; -dlgBlockIndent = 'Block indent:'; -dlgUndoLimit = 'Undo limit:'; -dlgTabWidths = 'Tab widths:'; -dlgMarginGutter = 'Margin and gutter';//What is gutter? -dlgVisibleRightMargin = 'Visible right margin'; -dlgVisibleGutter = 'Visible gutter';//I know only about fish guts... :( :) -dlgShowLineNumbers = 'Show line numbers'; -dlgRightMargin = 'Right margin'; -dlgRightMarginColor = 'Right margin color'; -dlgGutterWidth = 'Gutter width';// as I am food technology bachelor -dlgGutterColor = 'Gutter color';// and fish technology engineer :) - VVI -dlgEditorFont = 'Editor font'; -dlgEditorFontHeight = 'Editor font height'; -dlgExtraLineSpacing = 'Extra line spacing'; -dlgKeyMappingScheme = 'Key Mapping Scheme'; -dlgCheckConsistency = 'Check consistency'; -dlgEdHintCommand = 'Hint: click on the command you want to edit'; -dlgLang = 'Language:'; -dlgClrScheme = 'Color Scheme:'; -dlgFileExts = 'File extensions:'; -dlgEdElement = 'Element'; -dlgSetElementDefault = 'Set element to default'; -dlgSetAllElementDefault = 'Set all elements to default'; -dlgForecolor = 'Foreground color'; -dlgEdUseDefColor = 'Use default color'; -dlgTextAttributes = 'Text attributes'; -dlgEdBold = 'Bold'; -dlgEdItal = 'Italic'; -dlgEdUnder = 'Underline'; -dlgEdIdComlet = 'Identfier completion'; -dlgEdCodeParams = 'Code parameters'; -dlgTooltipEval = 'Tooltip expression evaluation'; -dlgTooltipTools = 'Tooltip symbol Tools'; -dlgEdDelay = 'Delay'; -dlgTimeSecondUnit = 'sec'; -dlgEdCodeTempl = 'Code templates'; -dlgTplFName = 'Template file name'; -dlgEdAdd = 'Add...'; -dlgEdEdit = 'Edit...'; -dlgEdDelete = 'Delete'; -dlgIndentCodeTo = 'Indent code to'; + + //Environment dialog + dlgEnvOpts = 'Environment Options'; + dlgDesktop = 'Desktop'; + dlgFrmEditor = 'Form Editor'; + dlgObjInsp = 'Object Inspector'; + dlgEnvFiles = 'Files'; + dlgEnvBckup = 'Backup'; + dlgNaming = 'Naming'; + dlgCancel = 'Cancel'; + dlgEnvLanguage = 'Language'; + dlgAutoSave = 'Auto save'; + dlgEdFiles = 'Editor files'; + dlgEnvProject = 'Project'; + dlgIntvInSec = 'Interval in secs'; + dlgDesktopFiles = 'Desktop files'; + dlgSaveDFile = 'Save desktop settings to file'; + dlgLoadDFile = 'Load desktop settings from file'; + dlgPalHints = 'Hints for component palette'; + dlgSpBHints = 'Hints for main speed buttons (open, save, ...)'; + dlgWinPos = 'Window Positions'; + dlgMainMenu = 'Main Menu'; + dlgSrcEdit = 'Source Editor'; + dlgMsgs = 'Messages'; + dlgProjFiles = 'Project files'; + dlgEnvType = 'Type'; + dlgEnvNone = 'None'; + dlgSmbFront = 'Symbol in front (.~pp)'; + dlgSmbBehind = 'Symbol behind (.pp~)'; + dlgSmbCounter = 'Counter (.pp;1)'; + dlgCustomExt = 'User defined extension (.pp.xxx)'; + dlgBckUpSubDir = 'Same name (in subdirectory)'; + dlgEdCustomExt = 'User defined extension'; + dlgMaxCntr = 'Maximum counter'; + dlgEdBSubDir = 'Sub directory'; + dlgEnvOtherFiles = 'Other files'; + dlgMaxRecentFiles = 'Max recent files'; + dlgMaxRecentProjs = 'Max recent project files'; + dlgQOpenLastPrj = 'Open last project at start'; + dlgLazarusDir = 'Lazarus directory (default for all projects)'; + dlgFpcPath = 'Compiler path (ppc386)'; + dlgFpcSrcPath = 'FPC source directory'; + dlgDebugType = 'Debugger type and path'; + dlgTestPrjDir = 'Directory for building test projects'; + dlgQShowGrid = 'Show grid'; + dlgGridColor = 'Grid color'; + dlgQSnapToGrid = 'Snap to grid'; + dlgGridX = 'Grid size X'; + dlgGridY = 'Grid size Y'; + dlgGuideLines = 'Show Guide Lines'; + dlgSnapGuideLines = 'Snap to Guide Lines'; + dlgLeftTopClr = 'color for left, top'; + dlgRightBottomClr = 'color for right, bottom'; + dlgShowCaps = 'Show component captions'; + dlgShowEdrHints = 'Show editor hints'; + dlgAutoForm = 'Auto create forms'; + dlgEnvGrid = 'Grid'; + dlgEnvLGuideLines = 'Guide lines'; + dlgEnvMisc = 'Miscellaneous'; + dlgPasExt = 'Default pascal extension'; + dlgPasLower = 'Save pascal files lowercase'; + dlgAmbigFileAct = 'Ambigious file action:'; + //TODO Make it + dlgEnvAsk = 'Ask'; + dlgAutoDel = 'Auto delete file'; + dlgAutoRen = 'Auto rename file'; + dlgAmbigWarn = 'Warn on compile'; + dlgIgnoreVerb = 'Ignore'; + //It''s OK then + dlgBackColor = 'Background color'; + dlgEnvColors = 'Colors'; + dlgEnvNotes = 'Notes: '; + dlgEdOptsCap = 'Editor Options'; + dlgEdDisplay = 'Display'; + dlgKeyMapping = 'Key Mappings'; + dlgEdColor = 'Color'; + dlgKeyMappingErrors = 'Key mapping errors'; + dlgEdBack = 'Back'; + dlgReport = 'Report'; + dlgEdNoErr = 'No errors in key mapping found.'; + dlgDelTemplate = 'Delete template '; + dlgChsCodeTempl = 'Choose code template file (*.dci)'; + dlgAllFiles = 'All files'; + dlgAltSetClMode = 'Alt Sets Column Mode'; + dlgAutoIdent = 'Auto Indent'; + dlgBracHighlight = 'Bracket Highlight'; + dlgDragDropEd = 'Drag Drop Editing'; + dlgDropFiles = 'Drop Files'; + dlgHalfPageScroll = 'Half Page Scroll'; + dlgKeepCaretX = 'Keep Caret X'; + dlgPersistentCaret = 'Persistent Caret'; + dlgScrollByOneLess = 'Scroll By One Less'; + dlgScrollPastEndFile = 'Scroll Past End of File'; + dlgScrollPastEndLine = 'Scroll Past End of Line'; + dlgCloseButtonsNotebook = 'Close buttons in notebook'; + dlgShowScrollHint = 'Show Scroll Hint'; + dlgSmartTabs = 'Smart Tabs'; + dlgTabsToSpaces = 'Tabs To Spaces'; + dlgTrimTrailingSpaces = 'Trim Trailing Spaces'; + dlgUndoAfterSave = 'Undo after save'; + dlgDoubleClickLine = 'Double click line'; + dlgFindTextatCursor = 'Find text at cursor'; + dlgUseSyntaxHighlight = 'Use syntax highlight'; + dlgBlockIndent = 'Block indent:'; + dlgUndoLimit = 'Undo limit:'; + dlgTabWidths = 'Tab widths:'; + dlgMarginGutter = 'Margin and gutter';//What is gutter? + dlgVisibleRightMargin = 'Visible right margin'; + dlgVisibleGutter = 'Visible gutter';//I know only about fish guts... :( :) + dlgShowLineNumbers = 'Show line numbers'; + dlgRightMargin = 'Right margin'; + dlgRightMarginColor = 'Right margin color'; + dlgGutterWidth = 'Gutter width';// as I am food technology bachelor + dlgGutterColor = 'Gutter color';// and fish technology engineer :) - VVI + dlgEditorFont = 'Editor font'; + dlgEditorFontHeight = 'Editor font height'; + dlgExtraLineSpacing = 'Extra line spacing'; + dlgKeyMappingScheme = 'Key Mapping Scheme'; + dlgCheckConsistency = 'Check consistency'; + dlgEdHintCommand = 'Hint: click on the command you want to edit'; + dlgLang = 'Language:'; + dlgClrScheme = 'Color Scheme:'; + dlgFileExts = 'File extensions:'; + dlgEdElement = 'Element'; + dlgSetElementDefault = 'Set element to default'; + dlgSetAllElementDefault = 'Set all elements to default'; + dlgForecolor = 'Foreground color'; + dlgEdUseDefColor = 'Use default color'; + dlgTextAttributes = 'Text attributes'; + dlgEdBold = 'Bold'; + dlgEdItal = 'Italic'; + dlgEdUnder = 'Underline'; + dlgEdIdComlet = 'Identfier completion'; + dlgEdCodeParams = 'Code parameters'; + dlgTooltipEval = 'Tooltip expression evaluation'; + dlgTooltipTools = 'Tooltip symbol Tools'; + dlgEdDelay = 'Delay'; + dlgTimeSecondUnit = 'sec'; + dlgEdCodeTempl = 'Code templates'; + dlgTplFName = 'Template file name'; + dlgEdAdd = 'Add...'; + dlgEdEdit = 'Edit...'; + dlgEdDelete = 'Delete'; + dlgIndentCodeTo = 'Indent code to'; implementation