pascalabcnet/VisualPascalABCNET/UserOptions.cs
2024-02-16 08:27:38 +03:00

280 lines
9.2 KiB
C#

// Copyright (c) Ivan Bondarev, Stanislav Mikhalkovich (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Text;
namespace VisualPascalABC
{
public class UserOptions : VisualPascalABCPlugins.IUserOptions
{
public bool RedirectConsoleIO = false;
public bool ShowLineNums = false;
public bool EnableFolding = false; // SSM 4.09.08
public bool ShowMatchBracket = false;
public bool ConverTabsToSpaces = true;
public bool deleteEXEAfterExecute = false;
public bool deletePDBAfterExecute = true;
public bool UseOutputDirectory = true;
public string OutputDirectory = null;
public bool PauseInRunModeIfConsole = true;
public string DefaultSourceFileNameFormat = "Program{0}.pas";
public int TabIndent = 2;
public int EditorFontSize = 12;
public bool AllowCodeCompletion = true;
public bool CodeCompletionHint = true;
public bool CodeCompletionDot = true;
public bool CodeCompletionParams = true;
public bool SaveSourceFilesIfComilationOk = false;
public int CodeCompletionNamespaceVisibleRange = 3;
public int CursorTabCount = 2;
public bool ShowCompletionInfoByGroup = true;
public bool EnableSmartIntellisense = false;
public bool ShowQuickClassBrowserPanel = false;
public bool UseSemanticIntellisense = false;
public bool AllowCodeFormatting = false;
public bool SkipStackTraceItemIfSourceFileInSystemDirectory = true;
public bool AlwaysAttachDebuggerAtStart = false;
public string CurrentFontFamily = "Consolas";
public bool HighlightOperatorBrackets=true;
public bool UseDllForSystemUnits = true;
public bool PABCDllChecked = false;
public bool AutoInsertCodeIsEnabledOnStartup = true;
public UserOptions()
{
try // SSM 25/04/22
{
var installedFontCollection = new System.Drawing.Text.InstalledFontCollection();
if (!Array.Exists(installedFontCollection.Families, f => f.Name == CurrentFontFamily))
CurrentFontFamily = "Courier New";
}
catch { }
}
public bool DeleteEXEAfterExecute
{
get
{
if (ProjectFactory.Instance.CurrentProject != null)
return ProjectFactory.Instance.CurrentProject.DeleteEXE;
return deleteEXEAfterExecute;
}
set
{
deleteEXEAfterExecute = value;
}
}
public bool DeletePDBAfterExecute
{
get
{
if (ProjectFactory.Instance.CurrentProject != null)
return ProjectFactory.Instance.CurrentProject.DeletePDB;
return deletePDBAfterExecute;
}
set
{
deletePDBAfterExecute = value;
}
}
#region IUserOptions Member
bool VisualPascalABCPlugins.IUserOptions.AllowCodeCompletion
{
get { return AllowCodeCompletion; }
set { AllowCodeCompletion = value; }
}
bool VisualPascalABCPlugins.IUserOptions.AllowCodeFormatting
{
get { return AllowCodeFormatting; }
set { AllowCodeFormatting = value; }
}
bool VisualPascalABCPlugins.IUserOptions.AlwaysAttachDebuggerAtStart
{
get { return AlwaysAttachDebuggerAtStart; }
set { AlwaysAttachDebuggerAtStart = value; }
}
bool VisualPascalABCPlugins.IUserOptions.CodeCompletionDot
{
get { return CodeCompletionDot; }
set { CodeCompletionDot = value; }
}
bool VisualPascalABCPlugins.IUserOptions.CodeCompletionHint
{
get { return CodeCompletionHint; }
set { CodeCompletionHint = value; }
}
int VisualPascalABCPlugins.IUserOptions.CodeCompletionNamespaceVisibleRange
{
get { return CodeCompletionNamespaceVisibleRange; }
set { CodeCompletionNamespaceVisibleRange = value; }
}
bool VisualPascalABCPlugins.IUserOptions.CodeCompletionParams
{
get { return CodeCompletionParams; }
set { CodeCompletionParams = value; }
}
bool VisualPascalABCPlugins.IUserOptions.ConverTabsToSpaces
{
get { return ConverTabsToSpaces; }
set { ConverTabsToSpaces = value; }
}
string VisualPascalABCPlugins.IUserOptions.CurrentFontFamily
{
get { return CurrentFontFamily; }
set { CurrentFontFamily = value; }
}
int VisualPascalABCPlugins.IUserOptions.CursorTabCount
{
get { return CursorTabCount; }
set { CursorTabCount = value; }
}
string VisualPascalABCPlugins.IUserOptions.DefaultSourceFileNameFormat
{
get { return DefaultSourceFileNameFormat; }
set { DefaultSourceFileNameFormat = value; }
}
bool VisualPascalABCPlugins.IUserOptions.DeleteEXEAfterExecute
{
get { return DeleteEXEAfterExecute; }
set { DeleteEXEAfterExecute = value; }
}
bool VisualPascalABCPlugins.IUserOptions.DeletePDBAfterExecute
{
get { return DeletePDBAfterExecute; }
set { DeletePDBAfterExecute = value; }
}
int VisualPascalABCPlugins.IUserOptions.EditorFontSize
{
get { return EditorFontSize; }
set { EditorFontSize = value; }
}
bool VisualPascalABCPlugins.IUserOptions.EnableFolding
{
get { return EnableFolding; }
set { EnableFolding = value; }
}
bool VisualPascalABCPlugins.IUserOptions.EnableSmartIntellisense
{
get { return EnableSmartIntellisense; }
set { EnableSmartIntellisense = value; }
}
bool VisualPascalABCPlugins.IUserOptions.HighlightOperatorBrackets
{
get { return HighlightOperatorBrackets; }
set { HighlightOperatorBrackets = value; }
}
string VisualPascalABCPlugins.IUserOptions.OutputDirectory
{
get { return OutputDirectory; }
set { OutputDirectory = value; }
}
bool VisualPascalABCPlugins.IUserOptions.PauseInRunModeIfConsole
{
get { return PauseInRunModeIfConsole; }
set { PauseInRunModeIfConsole = value; }
}
bool VisualPascalABCPlugins.IUserOptions.RedirectConsoleIO
{
get { return RedirectConsoleIO; }
set { RedirectConsoleIO = value; }
}
bool VisualPascalABCPlugins.IUserOptions.SaveSourceFilesIfComilationOk
{
get { return SaveSourceFilesIfComilationOk; }
set { SaveSourceFilesIfComilationOk = value; }
}
bool VisualPascalABCPlugins.IUserOptions.AutoInsertCodeIsEnabledOnStartup
{
get { return AutoInsertCodeIsEnabledOnStartup; }
set { AutoInsertCodeIsEnabledOnStartup = value; }
}
bool VisualPascalABCPlugins.IUserOptions.ShowCompletionInfoByGroup
{
get { return ShowCompletionInfoByGroup; }
set { ShowCompletionInfoByGroup = value; }
}
bool VisualPascalABCPlugins.IUserOptions.ShowLineNums
{
get { return ShowLineNums; }
set { ShowLineNums = value; }
}
bool VisualPascalABCPlugins.IUserOptions.ShowMatchBracket
{
get { return ShowMatchBracket; }
set { ShowMatchBracket = value; }
}
bool VisualPascalABCPlugins.IUserOptions.ShowQuickClassBrowserPanel
{
get { return ShowQuickClassBrowserPanel; }
set { ShowQuickClassBrowserPanel = value; }
}
bool VisualPascalABCPlugins.IUserOptions.SkipStakTraceItemIfSourceFileInSystemDirectory
{
get { return SkipStackTraceItemIfSourceFileInSystemDirectory; }
set { SkipStackTraceItemIfSourceFileInSystemDirectory = value; }
}
int VisualPascalABCPlugins.IUserOptions.TabIndent
{
get { return TabIndent; }
set { TabIndent = value; }
}
bool VisualPascalABCPlugins.IUserOptions.UseOutputDirectory
{
get { return UseOutputDirectory; }
set { UseOutputDirectory = value; }
}
bool VisualPascalABCPlugins.IUserOptions.UseDllForSystemUnits
{
get { return UseDllForSystemUnits; }
set { UseDllForSystemUnits = value; }
}
bool VisualPascalABCPlugins.IUserOptions.PABCDllChecked
{
get { return PABCDllChecked; }
set { PABCDllChecked = value; }
}
bool VisualPascalABCPlugins.IUserOptions.UseSemanticIntellisense
{
get { return UseSemanticIntellisense; }
set { UseSemanticIntellisense = value; }
}
#endregion
}
}