[svn] r6571: vs-plugin/trunk: ConsoleTest/Program.cs
Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/...
VladD2
svnadmin at nemerle.org
Wed Aug 23 15:42:56 CEST 2006
Log:
1. Sync with compiler.
2. Add tests.
3. Move ReplaceSpecialName(name : string) : string to compiler.
Author: VladD2
Date: Wed Aug 23 15:42:47 2006
New Revision: 6571
Modified:
vs-plugin/trunk/ConsoleTest/Program.cs
vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.MakeCompletionList.n
vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Engine/CompletionElem.n
vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Tests/Content/Class1.n
vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Tests/Tests.n
vs-plugin/trunk/Nemerle.Compiler.Utils/Utils.n
Modified: vs-plugin/trunk/ConsoleTest/Program.cs
==============================================================================
--- vs-plugin/trunk/ConsoleTest/Program.cs (original)
+++ vs-plugin/trunk/ConsoleTest/Program.cs Wed Aug 23 15:42:47 2006
@@ -12,6 +12,8 @@
Test1 test = new Test1();
test.Init();
+ test.Complete_namespace();
+ test.Complete_vars_with_same_name();
test.Complete_in_match_variant_3();
test.Complete_in_match_variant_2();
test.Complete_in_match_variant_1();
Modified: vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.MakeCompletionList.n
==============================================================================
--- vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.MakeCompletionList.n (original)
+++ vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.MakeCompletionList.n Wed Aug 23 15:42:47 2006
@@ -24,25 +24,22 @@
overloads.Add(value);
}
+ def addMember(member : IMember)
+ {
+ when (IsValid(member))
+ //Fixme: member.GetName() don't compile.
+ add (Completion.GetName(member), Elem.Member(member))
+ }
+
foreach (elem in result.Elems)
{
- | Local (value) => add(value.Type.ToDisplayString(), elem);
+ | Member(member) => addMember(member);
+ | Local (value) => add(value.Name, elem);
| Node (name, _) => add(name, elem);
| Overloads (values) =>
foreach (overload in values)
- {
- def member = overload.Member;
- when (IsValid(member))
- {
- def name = match (member.MemberType)
- {
- | Constructor => ReplaceSpecialName(member.DeclaringType.Name)
- | _ => member.Name
- }
+ addMember(overload.Member);
- add (name, Elem.Overload(overload))
- }
- }
| Overload => assert(false);
}
@@ -74,8 +71,8 @@
completionList.Add(CompletionElem(
node.Value.GetGlyphIndex() :> int, name, "", overloads));
- | Overload (overload) =>
- def member = overload.Member;
+ | Member(member)
+ | Overload (overload) with member = overload.Member =>
completionList.Add(CompletionElem(member.GetGlyphIndex(), name, "", overloads));
| Overloads => assert(false);
Modified: vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Engine/CompletionElem.n
==============================================================================
--- vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Engine/CompletionElem.n (original)
+++ vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Engine/CompletionElem.n Wed Aug 23 15:42:47 2006
@@ -41,11 +41,11 @@
{
| Local (value) => _ = builder.AppendLine(value.MakeHint());
| Node(_, node) => _ = builder.AppendLine(node.MakeHint());
- | Overload(overload) =>
- def member = overload.Member;
+ | Member(member)
+ | Overload (overload) with member = overload.Member =>
_ = builder.AppendLine(member.ToString());
- def info = XmlDocReader.GetInfo(overload.Member, overload.Member.Location);
+ def info = XmlDocReader.GetInfo(member, member.Location);
when (info != null)
{
Modified: vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Tests/Content/Class1.n
==============================================================================
--- vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Tests/Content/Class1.n (original)
+++ vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Tests/Content/Class1.n Wed Aug 23 15:42:47 2006
@@ -44,19 +44,32 @@
| _ => ()
//| TestVariant.B
}
- /*Complete in match variant 2:-0*/
+
}
public Method5() : void
{
- match (xxx)
+ def a : A = D();
+
+ match (a)
{
- | CValue(A/*Complete in match variant 3:-0*/
- | CValue(Bbb) => WriteLine();
- | _ => ()
+ | x is /*Complete in match variant 3:-0*/
}
}
+ public Method6() : void
+ {
+ def testVariable = 1;
+ def TestVariable = 1;
+
+ testVariab/*Complete vars with same name:-0*/
+ }
+
+ public Method7() : void
+ {
+ System.Console./*Complete namespace:-0*/
+ }
+
xxx : TestVariant2;
}
}
@@ -96,3 +109,8 @@
| BValue
| CValue { subVariant : TestVariant1; }
}
+
+class A { }
+class B : A { }
+class C : A { }
+class D : C { }
\ No newline at end of file
Modified: vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Tests/Tests.n
==============================================================================
--- vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Tests/Tests.n (original)
+++ vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Tests/Tests.n Wed Aug 23 15:42:47 2006
@@ -14,6 +14,26 @@
public partial class Test1
{
[Test]
+ public Complete_namespace() : void
+ {
+ def file = FilePath1;
+ def (line, col) = ReadLocation(file, "Complete namespace");
+ def result = _project.CompleteWord(file, line, col, GetTextFromFile(file, _, _, _, _));
+ Assert.IsNotNull(result, "result is null");
+ Assert.Greater(result.Length, 0);
+ }
+
+ [Test]
+ public Complete_vars_with_same_name() : void
+ {
+ def file = FilePath1;
+ def (line, col) = ReadLocation(file, "Complete vars with same name");
+ def result = _project.CompleteWord(file, line, col, GetTextFromFile(file, _, _, _, _));
+ Assert.IsNotNull(result, "result is null");
+ Assert.AreEqual(2, result.Length, "Expected 2 elements.");
+ }
+
+ [Test]
public Complete_in_match_variant_3() : void
{
def file = FilePath1;
Modified: vs-plugin/trunk/Nemerle.Compiler.Utils/Utils.n
==============================================================================
--- vs-plugin/trunk/Nemerle.Compiler.Utils/Utils.n (original)
+++ vs-plugin/trunk/Nemerle.Compiler.Utils/Utils.n Wed Aug 23 15:42:47 2006
@@ -108,7 +108,7 @@
public static GetNameFromType (t : MType) : string
{
| Class as c =>
- mutable name = ReplaceSpecialName(c.tycon.FrameworkTypeName);
+ mutable name = Completion.ReplaceSpecialName(c.tycon.FrameworkTypeName);
when (c.args.Length > 0)
{
@@ -132,30 +132,6 @@
| Intersection(types) => $"one of $types"
}
- /// Look for special names
- public static ReplaceSpecialName(name : string) : string
- {
- | "Nemerle.Core.list"
- | "Nemerle.Core.list+Cons"
- | "Nemerle.Core.list+Nil" => "list"
- | "System.Byte" => "byte"
- | "System.SByte" => "sbyte"
- | "System.Int16" => "short"
- | "System.UInt16" => "ushort"
- | "System.Int32" => "int"
- | "System.UInt32" => "uint"
- | "System.Int64" => "long"
- | "System.UInt64" => "ulong"
- | "System.Single" => "float"
- | "System.Double" => "double"
- | "System.Decimal" => "decimal"
- | "System.String" => "string"
- | "System.Object" => "object"
- | "System.Boolean" => "bool"
- | "System.Char" => "char"
- | _ => name
- }
-
public static GetGlyphIndex(this member : IMember) : int
{
def glyphType = match (member.GetKind ())
More information about the svn
mailing list