Временная опция "Использовать компилятор для Intellisense"
This commit is contained in:
parent
163bb02603
commit
945e34bc3f
|
|
@ -69,7 +69,7 @@ namespace CodeCompletion
|
|||
//throw e;
|
||||
//System.Diagnostics.Debug.WriteLine(e.StackTrace);
|
||||
}
|
||||
if (use_semantic_for_intellisense && cu.file_name.IndexOf("PABCSystem.pas") == -1)
|
||||
if (use_semantic_for_intellisense && !parse_only_interface)
|
||||
try
|
||||
{
|
||||
CorrectTreeWithSemantic(cu);
|
||||
|
|
@ -90,15 +90,16 @@ namespace CodeCompletion
|
|||
var ntr = new named_type_reference();
|
||||
ttr.name = ntr;
|
||||
ttr.params_list = new template_param_list();
|
||||
var arr = tn.full_name.Split('.');
|
||||
foreach (string s in arr)
|
||||
var arr = tn.original_generic.full_name.Split('.');
|
||||
for (int i = 0; i < arr.Length; i++)
|
||||
{
|
||||
if (s.IndexOf("<") == -1)
|
||||
var s = arr[i];
|
||||
if (i < arr.Length - 1)
|
||||
ntr.names.Add(new ident(s));
|
||||
else
|
||||
{
|
||||
var id = new ident_with_templateparams();
|
||||
ntr.Add(new ident(s.Substring(0, s.IndexOf("<"))));
|
||||
ntr.Add(new ident(s));
|
||||
foreach (var gen_td in tn.instance_params)
|
||||
ttr.params_list.Add(BuildSyntaxNodeForTypeReference(gen_td));
|
||||
}
|
||||
|
|
@ -108,7 +109,11 @@ namespace CodeCompletion
|
|||
else
|
||||
{
|
||||
var ntr = new named_type_reference();
|
||||
|
||||
if (tn.IsDelegate)
|
||||
{
|
||||
ntr.names.Add(new ident(tn.PrintableName.Replace("()", "")));
|
||||
return ntr;
|
||||
}
|
||||
var arr = tn.full_name.Split('.');
|
||||
foreach (string s in arr)
|
||||
{
|
||||
|
|
@ -138,7 +143,7 @@ namespace CodeCompletion
|
|||
if (ts is TypeSynonim)
|
||||
{
|
||||
var corrected_type = GetCorrectedType((ts as TypeSynonim).actType, tn, topScope);
|
||||
if (corrected_type != (ts as TypeSynonim).actType)
|
||||
if (!corrected_type.IsEqual((ts as TypeSynonim).actType))
|
||||
return corrected_type;
|
||||
return ts;
|
||||
}
|
||||
|
|
@ -146,7 +151,11 @@ namespace CodeCompletion
|
|||
{
|
||||
var ctn = tn as compiled_type_node;
|
||||
if (ctn.compiled_type.IsArray)
|
||||
{
|
||||
if (ctn.rank > 1)
|
||||
return new ArrayScope(GetIntellisenseTypeByType((ctn.element_type as compiled_type_node).compiled_type), new TypeScope[ctn.rank]);
|
||||
return new ArrayScope(GetIntellisenseTypeByType((ctn.element_type as compiled_type_node).compiled_type), null);
|
||||
}
|
||||
if (ctn.compiled_type.GetGenericArguments().Length == 0)
|
||||
return TypeTable.get_compiled_type(ctn.compiled_type);
|
||||
else
|
||||
|
|
@ -159,10 +168,21 @@ namespace CodeCompletion
|
|||
return CompiledScope.get_type_instance(ctn.compiled_type.GetGenericTypeDefinition(), gen_args);
|
||||
}
|
||||
}
|
||||
else if (tn is ref_type_node && ts is PointerScope)
|
||||
{
|
||||
var corrected_type = GetCorrectedType((ts as PointerScope).elementType, tn.element_type, topScope);
|
||||
if (!corrected_type.IsEqual((ts as PointerScope).elementType))
|
||||
return new PointerScope(corrected_type);
|
||||
return ts;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (tn.full_name.IndexOf("$") != -1 || tn.full_name.IndexOf("#") != -1)
|
||||
return ts;
|
||||
if (ts is FileScope && tn.type_special_kind == PascalABCCompiler.SemanticTree.type_special_kind.typed_file)
|
||||
return ts;
|
||||
if (ts is FileScope && tn.type_special_kind == PascalABCCompiler.SemanticTree.type_special_kind.binary_file)
|
||||
return ts;
|
||||
var ntr = BuildSyntaxNodeForTypeReference(tn);
|
||||
cur_scope = topScope;
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ namespace CodeCompletion
|
|||
//string dir = Path.Combine(@"c:\Work\Miks\_PABCNETGitHub\TestSuite", "intellisense_tests");
|
||||
var comp = new PascalABCCompiler.Compiler();
|
||||
var controller = new CodeCompletion.CodeCompletionController();
|
||||
CodeCompletion.DomSyntaxTreeVisitor.use_semantic_for_intellisense = true;
|
||||
CodeCompletion.CodeCompletionController.comp = comp;
|
||||
CodeCompletion.CodeCompletionController.SetParser(".pas");
|
||||
CodeCompletion.CodeCompletionController.ParsersController = comp.ParsersController;
|
||||
|
|
@ -54,7 +55,7 @@ namespace CodeCompletion
|
|||
if (desc == null)
|
||||
desc = "";
|
||||
desc = desc.Split(new string[] { "\n"},StringSplitOptions.None)[0].Trim();
|
||||
assert(desc.Replace(", ", ",") == should_desc.Replace(", ",","), FileName+", should: "+should_desc+", is: "+desc);
|
||||
assert(string.Compare(desc.Replace(", ", ","), should_desc.Replace(", ", ","), true) == 0, FileName+", should: "+should_desc+", is: "+desc);
|
||||
tmp = tmp.Remove(ind, tmp.IndexOf("@}") + 2 - ind);
|
||||
ind = tmp.IndexOf("{@");
|
||||
}
|
||||
|
|
@ -71,7 +72,7 @@ namespace CodeCompletion
|
|||
if (desc == null)
|
||||
desc = "";
|
||||
desc = desc.Split(new string[] { "\n" }, StringSplitOptions.None)[0].Trim();
|
||||
assert(desc.Replace(", ", ",") == should_desc.Replace(", ", ","), FileName + ", should: " + should_desc + ", is: " + desc);
|
||||
assert(string.Compare(desc.Replace(", ", ","), should_desc.Replace(", ", ","), true) == 0, FileName + ", should: " + should_desc + ", is: " + desc);
|
||||
tmp = tmp.Remove(ind, tmp.IndexOf("]}") + 2 - ind);
|
||||
ind = tmp.IndexOf("{[");
|
||||
}
|
||||
|
|
@ -88,7 +89,7 @@ namespace CodeCompletion
|
|||
if (desc == null)
|
||||
desc = "";
|
||||
desc = desc.Split(new string[] { "\n" }, StringSplitOptions.None)[0].Trim();
|
||||
assert(desc.Replace(", ", ",") == should_desc.Replace(", ", ","), FileName + ", should: " + should_desc + ", is: " + desc);
|
||||
assert(string.Compare(desc.Replace(", ", ","), should_desc.Replace(", ", ","), true) == 0, FileName + ", should: " + should_desc + ", is: " + desc);
|
||||
tmp = tmp.Remove(ind, tmp.IndexOf(")}") + 2 - ind);
|
||||
ind = tmp.IndexOf("{(");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -242,6 +242,7 @@ namespace VisualPascalABCPlugins
|
|||
bool UseDllForSystemUnits { get; set; }
|
||||
bool PABCDllChecked { get; set; }
|
||||
bool AutoInsertCodeIsEnabledOnStartup { get; set; }
|
||||
bool UseSemanticIntellisense { get; set; }
|
||||
}
|
||||
|
||||
public interface IListItem
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
begin
|
||||
var Floors := new Dictionary<(cardinal, cardinal), List<integer>>;
|
||||
var Floors := new Dictionary<(longword, longword), List<integer>>;
|
||||
var sz := (1, 2);
|
||||
foreach var a{@var a: (cardinal,cardinal);@} in Floors.Keys do
|
||||
foreach var a{@var a: (longword,longword);@} in Floors.Keys do
|
||||
begin
|
||||
|
||||
end;
|
||||
var l{@var l: List<integer>;@} := Floors[sz];
|
||||
l.Add(23);
|
||||
|
||||
end.
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
type
|
||||
//!semantic
|
||||
type
|
||||
TClass = class
|
||||
fX: byte;
|
||||
|
||||
|
|
@ -9,7 +10,7 @@
|
|||
|
||||
begin
|
||||
var instance := new TClass();
|
||||
var x1{@var x1: byte;@} := instance?.fX;
|
||||
var x3{@var x3: integer;@} := instance?.F;
|
||||
var x1{@var x1: Nullable<byte>;@} := instance?.fX;
|
||||
var x3{@var x3: Nullable<integer>;@} := instance?.F;
|
||||
writeln(instance?.F{@function TClass.F(): integer;@});
|
||||
end.
|
||||
7
TestSuite/intellisense_tests/foreach6.pas
Normal file
7
TestSuite/intellisense_tests/foreach6.pas
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
//!semantic
|
||||
{$reference system.windows.forms.dll}
|
||||
begin
|
||||
var coll: system.windows.forms.ListBox.SelectedIndexCollection;
|
||||
foreach var a in coll do
|
||||
a{@var a: Object;@}.IsEven.print;
|
||||
end.
|
||||
4
TestSuite/intellisense_tests/generics23.pas
Normal file
4
TestSuite/intellisense_tests/generics23.pas
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
//!semantic
|
||||
begin
|
||||
var q{@var q: sequence of real;@} := Arr(1,2,3).Select(x->1/x);
|
||||
end.
|
||||
6
TestSuite/intellisense_tests/generics24.pas
Normal file
6
TestSuite/intellisense_tests/generics24.pas
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
//!semantic
|
||||
begin
|
||||
Arr(1,2,3).Aggregate(1.0, (y, x{@parameter x: integer;@}) ->
|
||||
(y{@parameter y: real;@} * (x mod 10)));
|
||||
ReadArrInteger(10).Where((x, i) -> i{@parameter i: integer;@} mod 2 = 0);
|
||||
end.
|
||||
5
TestSuite/intellisense_tests/generics25.pas
Normal file
5
TestSuite/intellisense_tests/generics25.pas
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
//!semantic
|
||||
begin
|
||||
var a: array of integer;
|
||||
a.Min(p -> p{@parameter p: integer;@}[0]);
|
||||
end.
|
||||
|
|
@ -125,7 +125,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
{
|
||||
semantic_check_extended_foreach(vars, elem_type, foreachCollection.location);
|
||||
}
|
||||
|
||||
CheckToEmbeddedStatementCannotBeADeclaration(_foreach_stmt.stmt);
|
||||
|
||||
foreachVariable = FindForeachVariable(_foreach_stmt, elem_type, sys_coll_ienum);
|
||||
|
|
|
|||
|
|
@ -15749,21 +15749,17 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public override void visit(SyntaxTree.if_node _if_node)
|
||||
{
|
||||
expression_node condition = convert_strong(_if_node.condition);
|
||||
condition = convertion_data_and_alghoritms.convert_type(condition, SystemLibrary.SystemLibrary.bool_type);
|
||||
try_convert_typed_expression_to_function_call(ref condition, true);
|
||||
// SSM 29/08/16
|
||||
/*var cc = condition as bool_const_node;
|
||||
if (cc != null && cc.constant_value == false && _if_node.else_body == null)
|
||||
expression_node condition = null;
|
||||
if (!for_intellisense)
|
||||
{
|
||||
// недостижимый код - ничего не генерировать
|
||||
return_value(new empty_statement(get_location(_if_node)));
|
||||
// перед этим надо обходить then_body
|
||||
return;
|
||||
}*/
|
||||
condition = convert_strong(_if_node.condition);
|
||||
condition = convertion_data_and_alghoritms.convert_type(condition, SystemLibrary.SystemLibrary.bool_type);
|
||||
try_convert_typed_expression_to_function_call(ref condition, true);
|
||||
|
||||
CheckToEmbeddedStatementCannotBeADeclaration(_if_node.then_body);
|
||||
CheckToEmbeddedStatementCannotBeADeclaration(_if_node.else_body);
|
||||
}
|
||||
|
||||
CheckToEmbeddedStatementCannotBeADeclaration(_if_node.then_body);
|
||||
CheckToEmbeddedStatementCannotBeADeclaration(_if_node.else_body);
|
||||
|
||||
statements_list sl = new statements_list(get_location(_if_node.then_body));
|
||||
convertion_data_and_alghoritms.statement_list_stack_push(sl);
|
||||
|
|
@ -15805,10 +15801,14 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public override void visit(SyntaxTree.while_node _while_node)
|
||||
{
|
||||
expression_node expr = convert_strong(_while_node.expr);
|
||||
expr = convertion_data_and_alghoritms.convert_type(expr, SystemLibrary.SystemLibrary.bool_type);
|
||||
try_convert_typed_expression_to_function_call(ref expr, true);
|
||||
CheckToEmbeddedStatementCannotBeADeclaration(_while_node.statements);
|
||||
expression_node expr = null;
|
||||
if (!for_intellisense)
|
||||
{
|
||||
expr = convert_strong(_while_node.expr);
|
||||
expr = convertion_data_and_alghoritms.convert_type(expr, SystemLibrary.SystemLibrary.bool_type);
|
||||
try_convert_typed_expression_to_function_call(ref expr, true);
|
||||
CheckToEmbeddedStatementCannotBeADeclaration(_while_node.statements);
|
||||
}
|
||||
|
||||
while_node wn = new while_node(expr, get_location(_while_node));
|
||||
context.cycle_stack.push(wn);
|
||||
|
|
@ -15853,10 +15853,14 @@ namespace PascalABCCompiler.TreeConverter
|
|||
}
|
||||
|
||||
rep.body = st;
|
||||
expression_node expr = convert_strong(_repeat_node.expr);
|
||||
expr = convertion_data_and_alghoritms.convert_type(expr, SystemLibrary.SystemLibrary.bool_type);
|
||||
try_convert_typed_expression_to_function_call(ref expr, true);
|
||||
rep.condition = expr;
|
||||
expression_node expr = null;
|
||||
if (!for_intellisense)
|
||||
{
|
||||
expr = convert_strong(_repeat_node.expr);
|
||||
expr = convertion_data_and_alghoritms.convert_type(expr, SystemLibrary.SystemLibrary.bool_type);
|
||||
try_convert_typed_expression_to_function_call(ref expr, true);
|
||||
rep.condition = expr;
|
||||
}
|
||||
context.cycle_stack.pop();
|
||||
return_value(rep);
|
||||
}
|
||||
|
|
@ -16078,6 +16082,12 @@ namespace PascalABCCompiler.TreeConverter
|
|||
{
|
||||
AddError(loc, "NO_DEFAULT_PROPERTY_TO_FUNCTION_TYPE");
|
||||
}
|
||||
if (for_intellisense)
|
||||
{
|
||||
return_value(expr);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (expr.type.default_property_node.polymorphic_state == SemanticTree.polymorphic_state.ps_static)
|
||||
|
|
@ -17933,6 +17943,16 @@ namespace PascalABCCompiler.TreeConverter
|
|||
statement syntax_statement = _statement_list.subnodes[i];
|
||||
try
|
||||
{
|
||||
if (for_intellisense)
|
||||
{
|
||||
if (syntax_statement is assign && !(context.converted_func_stack.top() != null && context.converted_func_stack.top().return_value_type is undefined_type)
|
||||
|| syntax_statement is procedure_call || syntax_statement is raise_statement)
|
||||
{
|
||||
|
||||
if (!(new LambdaSearcher(syntax_statement).CheckIfContainsLambdas()))
|
||||
continue;
|
||||
}
|
||||
}
|
||||
statement_node semantic_statement = convert_strong(syntax_statement);
|
||||
if (semantic_statement != null)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ namespace VisualPascalABC.OptionsContent
|
|||
this.cbCodeCompletionDot = new System.Windows.Forms.CheckBox();
|
||||
this.cbCodeCompletionHint = new System.Windows.Forms.CheckBox();
|
||||
this.cbIntellisencePanel = new System.Windows.Forms.CheckBox();
|
||||
this.cbUseSemanticIntellisense = new System.Windows.Forms.CheckBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nuNamespaceVisibleRange)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
|
|
@ -45,11 +46,10 @@ namespace VisualPascalABC.OptionsContent
|
|||
this.cbCodeCompletionKeyPressed.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
this.cbCodeCompletionKeyPressed.Checked = true;
|
||||
this.cbCodeCompletionKeyPressed.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.cbCodeCompletionKeyPressed.Location = new System.Drawing.Point(23, 110);
|
||||
this.cbCodeCompletionKeyPressed.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.cbCodeCompletionKeyPressed.Location = new System.Drawing.Point(17, 89);
|
||||
this.cbCodeCompletionKeyPressed.Name = "cbCodeCompletionKeyPressed";
|
||||
this.cbCodeCompletionKeyPressed.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
|
||||
this.cbCodeCompletionKeyPressed.Size = new System.Drawing.Size(264, 21);
|
||||
this.cbCodeCompletionKeyPressed.Size = new System.Drawing.Size(210, 17);
|
||||
this.cbCodeCompletionKeyPressed.TabIndex = 38;
|
||||
this.cbCodeCompletionKeyPressed.Text = "CODE_COMPLETION_KEYPRESSED";
|
||||
this.cbCodeCompletionKeyPressed.UseVisualStyleBackColor = true;
|
||||
|
|
@ -57,24 +57,22 @@ namespace VisualPascalABC.OptionsContent
|
|||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(91, 170);
|
||||
this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label5.Location = new System.Drawing.Point(68, 138);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(207, 17);
|
||||
this.label5.Size = new System.Drawing.Size(163, 13);
|
||||
this.label5.TabIndex = 37;
|
||||
this.label5.Text = "NAMESPACE_VISIBLE_RANGE";
|
||||
//
|
||||
// nuNamespaceVisibleRange
|
||||
//
|
||||
this.nuNamespaceVisibleRange.Location = new System.Drawing.Point(23, 165);
|
||||
this.nuNamespaceVisibleRange.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.nuNamespaceVisibleRange.Location = new System.Drawing.Point(17, 134);
|
||||
this.nuNamespaceVisibleRange.Maximum = new decimal(new int[] {
|
||||
32,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nuNamespaceVisibleRange.Name = "nuNamespaceVisibleRange";
|
||||
this.nuNamespaceVisibleRange.Size = new System.Drawing.Size(64, 22);
|
||||
this.nuNamespaceVisibleRange.Size = new System.Drawing.Size(48, 20);
|
||||
this.nuNamespaceVisibleRange.TabIndex = 36;
|
||||
this.nuNamespaceVisibleRange.Value = new decimal(new int[] {
|
||||
3,
|
||||
|
|
@ -88,11 +86,10 @@ namespace VisualPascalABC.OptionsContent
|
|||
this.cbAllowCodeCompletion.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
this.cbAllowCodeCompletion.Checked = true;
|
||||
this.cbAllowCodeCompletion.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.cbAllowCodeCompletion.Location = new System.Drawing.Point(7, 6);
|
||||
this.cbAllowCodeCompletion.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.cbAllowCodeCompletion.Location = new System.Drawing.Point(5, 5);
|
||||
this.cbAllowCodeCompletion.Name = "cbAllowCodeCompletion";
|
||||
this.cbAllowCodeCompletion.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
|
||||
this.cbAllowCodeCompletion.Size = new System.Drawing.Size(221, 21);
|
||||
this.cbAllowCodeCompletion.Size = new System.Drawing.Size(176, 17);
|
||||
this.cbAllowCodeCompletion.TabIndex = 35;
|
||||
this.cbAllowCodeCompletion.Text = "ALLOW_CODE_COMPLETION";
|
||||
this.cbAllowCodeCompletion.UseVisualStyleBackColor = true;
|
||||
|
|
@ -104,11 +101,10 @@ namespace VisualPascalABC.OptionsContent
|
|||
this.cbCodeCompletionParams.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
this.cbCodeCompletionParams.Checked = true;
|
||||
this.cbCodeCompletionParams.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.cbCodeCompletionParams.Location = new System.Drawing.Point(23, 84);
|
||||
this.cbCodeCompletionParams.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.cbCodeCompletionParams.Location = new System.Drawing.Point(17, 68);
|
||||
this.cbCodeCompletionParams.Name = "cbCodeCompletionParams";
|
||||
this.cbCodeCompletionParams.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
|
||||
this.cbCodeCompletionParams.Size = new System.Drawing.Size(229, 21);
|
||||
this.cbCodeCompletionParams.Size = new System.Drawing.Size(183, 17);
|
||||
this.cbCodeCompletionParams.TabIndex = 34;
|
||||
this.cbCodeCompletionParams.Text = "CODE_COMPLETION_PARAMS";
|
||||
this.cbCodeCompletionParams.UseVisualStyleBackColor = true;
|
||||
|
|
@ -119,11 +115,10 @@ namespace VisualPascalABC.OptionsContent
|
|||
this.cbCodeCompletionDot.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
this.cbCodeCompletionDot.Checked = true;
|
||||
this.cbCodeCompletionDot.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.cbCodeCompletionDot.Location = new System.Drawing.Point(23, 58);
|
||||
this.cbCodeCompletionDot.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.cbCodeCompletionDot.Location = new System.Drawing.Point(17, 47);
|
||||
this.cbCodeCompletionDot.Name = "cbCodeCompletionDot";
|
||||
this.cbCodeCompletionDot.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
|
||||
this.cbCodeCompletionDot.Size = new System.Drawing.Size(202, 21);
|
||||
this.cbCodeCompletionDot.Size = new System.Drawing.Size(161, 17);
|
||||
this.cbCodeCompletionDot.TabIndex = 33;
|
||||
this.cbCodeCompletionDot.Text = "CODE_COMPLETION_DOT";
|
||||
this.cbCodeCompletionDot.UseVisualStyleBackColor = true;
|
||||
|
|
@ -134,11 +129,10 @@ namespace VisualPascalABC.OptionsContent
|
|||
this.cbCodeCompletionHint.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
this.cbCodeCompletionHint.Checked = true;
|
||||
this.cbCodeCompletionHint.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.cbCodeCompletionHint.Location = new System.Drawing.Point(23, 32);
|
||||
this.cbCodeCompletionHint.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.cbCodeCompletionHint.Location = new System.Drawing.Point(17, 26);
|
||||
this.cbCodeCompletionHint.Name = "cbCodeCompletionHint";
|
||||
this.cbCodeCompletionHint.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
|
||||
this.cbCodeCompletionHint.Size = new System.Drawing.Size(204, 21);
|
||||
this.cbCodeCompletionHint.Size = new System.Drawing.Size(164, 17);
|
||||
this.cbCodeCompletionHint.TabIndex = 32;
|
||||
this.cbCodeCompletionHint.Text = "CODE_COMPLETION_HINT";
|
||||
this.cbCodeCompletionHint.UseVisualStyleBackColor = true;
|
||||
|
|
@ -149,19 +143,30 @@ namespace VisualPascalABC.OptionsContent
|
|||
this.cbIntellisencePanel.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
this.cbIntellisencePanel.Checked = true;
|
||||
this.cbIntellisencePanel.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.cbIntellisencePanel.Location = new System.Drawing.Point(23, 136);
|
||||
this.cbIntellisencePanel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.cbIntellisencePanel.Location = new System.Drawing.Point(17, 110);
|
||||
this.cbIntellisencePanel.Name = "cbIntellisencePanel";
|
||||
this.cbIntellisencePanel.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
|
||||
this.cbIntellisencePanel.Size = new System.Drawing.Size(227, 21);
|
||||
this.cbIntellisencePanel.Size = new System.Drawing.Size(183, 17);
|
||||
this.cbIntellisencePanel.TabIndex = 39;
|
||||
this.cbIntellisencePanel.Text = "SHOW_INTELLISENCE_PANEL";
|
||||
this.cbIntellisencePanel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// cbUseSemanticIntellisense
|
||||
//
|
||||
this.cbUseSemanticIntellisense.AutoSize = true;
|
||||
this.cbUseSemanticIntellisense.Location = new System.Drawing.Point(17, 161);
|
||||
this.cbUseSemanticIntellisense.Name = "cbUseSemanticIntellisense";
|
||||
this.cbUseSemanticIntellisense.Size = new System.Drawing.Size(191, 17);
|
||||
this.cbUseSemanticIntellisense.TabIndex = 40;
|
||||
this.cbUseSemanticIntellisense.Text = "USE_SEMANTIC_INTELLISENSE";
|
||||
this.cbUseSemanticIntellisense.UseVisualStyleBackColor = true;
|
||||
this.cbUseSemanticIntellisense.CheckedChanged += new System.EventHandler(this.cbUseSemanticIntellisense_CheckedChanged);
|
||||
//
|
||||
// IntelliseseOptionsContent
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.cbUseSemanticIntellisense);
|
||||
this.Controls.Add(this.cbIntellisencePanel);
|
||||
this.Controls.Add(this.cbCodeCompletionKeyPressed);
|
||||
this.Controls.Add(this.label5);
|
||||
|
|
@ -170,9 +175,8 @@ namespace VisualPascalABC.OptionsContent
|
|||
this.Controls.Add(this.cbCodeCompletionParams);
|
||||
this.Controls.Add(this.cbCodeCompletionDot);
|
||||
this.Controls.Add(this.cbCodeCompletionHint);
|
||||
this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.Name = "IntelliseseOptionsContent";
|
||||
this.Size = new System.Drawing.Size(701, 260);
|
||||
this.Size = new System.Drawing.Size(526, 211);
|
||||
((System.ComponentModel.ISupportInitialize)(this.nuNamespaceVisibleRange)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
|
@ -189,5 +193,6 @@ namespace VisualPascalABC.OptionsContent
|
|||
private System.Windows.Forms.CheckBox cbCodeCompletionDot;
|
||||
private System.Windows.Forms.CheckBox cbCodeCompletionHint;
|
||||
private System.Windows.Forms.CheckBox cbIntellisencePanel;
|
||||
private System.Windows.Forms.CheckBox cbUseSemanticIntellisense;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ namespace VisualPascalABC.OptionsContent
|
|||
cbCodeCompletionKeyPressed.Checked = MainForm.UserOptions.EnableSmartIntellisense;
|
||||
nuNamespaceVisibleRange.Value = MainForm.UserOptions.CodeCompletionNamespaceVisibleRange;
|
||||
cbIntellisencePanel.Checked = MainForm.UserOptions.ShowQuickClassBrowserPanel;
|
||||
cbUseSemanticIntellisense.Checked = MainForm.UserOptions.UseSemanticIntellisense;
|
||||
alreadyShown = true;
|
||||
}
|
||||
break;
|
||||
|
|
@ -70,6 +71,7 @@ namespace VisualPascalABC.OptionsContent
|
|||
MainForm.UserOptions.EnableSmartIntellisense = cbCodeCompletionKeyPressed.Checked;
|
||||
MainForm.UserOptions.CodeCompletionNamespaceVisibleRange = Convert.ToInt32(nuNamespaceVisibleRange.Value);
|
||||
MainForm.UserOptions.ShowQuickClassBrowserPanel = cbIntellisencePanel.Checked;
|
||||
MainForm.UserOptions.UseSemanticIntellisense = cbUseSemanticIntellisense.Checked;
|
||||
MainForm.UpdateUserOptions();
|
||||
alreadyShown = false;
|
||||
WorkbenchServiceFactory.OptionsService.SaveOptions();
|
||||
|
|
@ -84,9 +86,13 @@ namespace VisualPascalABC.OptionsContent
|
|||
|
||||
private void cbAllowCodeCompletion_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
cbIntellisencePanel.Checked = cbCodeCompletionKeyPressed.Checked = cbCodeCompletionDot.Checked = cbCodeCompletionHint.Checked = cbCodeCompletionParams.Checked = cbAllowCodeCompletion.Checked;
|
||||
cbIntellisencePanel.Enabled = cbCodeCompletionKeyPressed.Enabled = nuNamespaceVisibleRange.Enabled = cbCodeCompletionDot.Enabled = cbCodeCompletionHint.Enabled = cbCodeCompletionParams.Enabled = cbAllowCodeCompletion.Checked;
|
||||
cbIntellisencePanel.Checked = cbUseSemanticIntellisense.Checked = cbCodeCompletionKeyPressed.Checked = cbCodeCompletionDot.Checked = cbCodeCompletionHint.Checked = cbCodeCompletionParams.Checked = cbAllowCodeCompletion.Checked;
|
||||
cbIntellisencePanel.Enabled = cbUseSemanticIntellisense.Enabled = cbCodeCompletionKeyPressed.Enabled = nuNamespaceVisibleRange.Enabled = cbCodeCompletionDot.Enabled = cbCodeCompletionHint.Enabled = cbCodeCompletionParams.Enabled = cbAllowCodeCompletion.Checked;
|
||||
}
|
||||
|
||||
private void cbUseSemanticIntellisense_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
CodeCompletion.DomSyntaxTreeVisitor.use_semantic_for_intellisense = cbUseSemanticIntellisense.Checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -112,9 +112,9 @@
|
|||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
|
|
@ -31,6 +31,7 @@ namespace VisualPascalABC
|
|||
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;
|
||||
|
|
@ -256,6 +257,12 @@ namespace VisualPascalABC
|
|||
set { PABCDllChecked = value; }
|
||||
}
|
||||
|
||||
bool VisualPascalABCPlugins.IUserOptions.UseSemanticIntellisense
|
||||
{
|
||||
get { return UseSemanticIntellisense; }
|
||||
set { UseSemanticIntellisense = value; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ namespace VisualPascalABC
|
|||
private string OptionsItemNameDockLeftPortion = "DockLeftPortion";
|
||||
private string OptionsItemNameDockRightPortion = "DockRightPortion";
|
||||
private string OptionsItemNameShowQuickClassBrowserPanel = "ShowQuickClassBrowserPanel";
|
||||
private string OptionsItemNameUseSemanticIntellisense = "UseSemanticIntellisense";
|
||||
private string OptionsItemNameSkipStackTraceItemIfSourceFileInSystemDirectory = "SkipStakTraceItemIfSourceFileInSystemDirectory";
|
||||
private string OptionsItemNameShowFoundedNamesTab = "ShowFoundedNamesTab";
|
||||
private string OptionsItemNameShowWatchTab = "ShowWatchTab";
|
||||
|
|
@ -237,6 +238,8 @@ namespace VisualPascalABC
|
|||
UserOptions.UseDllForSystemUnits = Convert.ToBoolean(value);
|
||||
if ((value = (string)Options[OptionsItemPABCDllChecked]) != null)
|
||||
UserOptions.PABCDllChecked = Convert.ToBoolean(value);
|
||||
if ((value = (string)Options[OptionsItemNameUseSemanticIntellisense]) != null)
|
||||
UserOptions.UseSemanticIntellisense = Convert.ToBoolean(value);
|
||||
int i = 0;
|
||||
while ((value = (string)Options[OptionsItemNameLastFile + (i++).ToString()]) != null)
|
||||
AddLastFile(value);
|
||||
|
|
@ -286,6 +289,7 @@ namespace VisualPascalABC
|
|||
Options.Add(OptionsItemNameCodeCompletionNamespaceVisibleRange, UserOptions.CodeCompletionNamespaceVisibleRange);
|
||||
Options.Add(OptionsItemNameSaveSourceFilesIfComilationOk, UserOptions.SaveSourceFilesIfComilationOk);
|
||||
Options.Add(OptionsItemNameShowQuickClassBrowserPanel, UserOptions.ShowQuickClassBrowserPanel);
|
||||
Options.Add(OptionsItemNameUseSemanticIntellisense, UserOptions.UseSemanticIntellisense);
|
||||
Options.Add(OptionsItemNameSkipStackTraceItemIfSourceFileInSystemDirectory, UserOptions.SkipStackTraceItemIfSourceFileInSystemDirectory);
|
||||
Options.Add(OptionsItemNameAutoInsertCode, UserOptions.AutoInsertCodeIsEnabledOnStartup);
|
||||
|
||||
|
|
|
|||
|
|
@ -261,7 +261,7 @@ namespace VisualPascalABCPlugins
|
|||
|
||||
private void cbUseSemanticForIntellisense_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
CodeCompletion.DomSyntaxTreeVisitor.use_semantic_for_intellisense = cbUseSemanticForIntellisense.Checked;
|
||||
//CodeCompletion.DomSyntaxTreeVisitor.use_semantic_for_intellisense = cbUseSemanticForIntellisense.Checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -399,6 +399,7 @@ CODE_COMPLETION_PARAMS=Show tooltip when writing method calls
|
|||
CODE_COMPLETION_KEYPRESSED=Show tooltip by key pressing
|
||||
SHOW_INTELLISENCE_PANEL=Show quick class browser panel
|
||||
NAMESPACE_VISIBLE_RANGE=Level of nesting namespaces (0 - all)
|
||||
USE_SEMANTIC_INTELLISENSE=Use compiler engine for code completion
|
||||
|
||||
//CompilerOptions
|
||||
%PREFIX%=VP_OC_COMPILEROPTIONS_
|
||||
|
|
|
|||
|
|
@ -399,6 +399,7 @@ CODE_COMPLETION_PARAMS=Подсказка параметров функций
|
|||
CODE_COMPLETION_KEYPRESSED=Подсказка по нажатию клавиши
|
||||
SHOW_INTELLISENCE_PANEL=Панель навигации по исходному коду
|
||||
NAMESPACE_VISIBLE_RANGE=Вложенность пространств имен (0 - все)
|
||||
USE_SEMANTIC_INTELLISENSE=Использовать компилятор для Intellisense
|
||||
|
||||
//CompilerOptions
|
||||
%PREFIX%=VP_OC_COMPILEROPTIONS_
|
||||
|
|
|
|||
|
|
@ -393,6 +393,7 @@ CODE_COMPLETION_PARAMS=Підказка параметрів функцій
|
|||
CODE_COMPLETION_KEYPRESSED=Підказка по натисканню клавіші
|
||||
SHOW_INTELLISENCE_PANEL=Панель навігації по вихідному коду
|
||||
NAMESPACE_VISIBLE_RANGE=Вкладеність просторів імен (0 - усі)
|
||||
USE_SEMANTIC_INTELLISENSE=Использовать компилятор для Intellisense
|
||||
|
||||
//CompilerOptions
|
||||
%PREFIX%=VP_OC_COMPILEROPTIONS_
|
||||
|
|
|
|||
Loading…
Reference in a new issue