[svn] r6431: nemerle/trunk/ncc: completion/CodeCompletionEngine.n
testsuite/completion-playground/compl-me...
trupill
svnadmin at nemerle.org
Thu Jul 6 20:39:36 CEST 2006
Log:
More changes to allow tracking of member references. Added simple
testcase.
Author: trupill
Date: Thu Jul 6 20:39:32 2006
New Revision: 6431
Added:
nemerle/trunk/ncc/testsuite/completion-playground/compl-membersref.n
Modified:
nemerle/trunk/ncc/completion/CodeCompletionEngine.n
nemerle/trunk/ncc/testsuite/completion-playground/compl-s2.n
Modified: nemerle/trunk/ncc/completion/CodeCompletionEngine.n
==============================================================================
--- nemerle/trunk/ncc/completion/CodeCompletionEngine.n (original)
+++ nemerle/trunk/ncc/completion/CodeCompletionEngine.n Thu Jul 6 20:39:32 2006
@@ -324,27 +324,33 @@
public override MarkAsUsed (member : IMember, location : Location) : void
{
member.HasBeenUsed = true;
- add_to_ref (member, get_real_location (location, member.Name));
+ add_to_ref (member, location);
}
public override MarkAsAssigned (member : IField, location : Location) : void
{
member.HasBeenAssigned = true;
- add_to_ref (member, get_real_location (location, member.Name));
+ add_to_ref (member, location);
}
static get_real_location (location : Location, name : string) : Location
{
- Location (location.FileIndex, location.Line, location.Column - name.Length,
+ Location (location.FileIndex, location.Line, (location.Column - name.Length + 1),
location.EndLine, location.EndColumn)
}
add_to_ref (member : IMember, location : Location) : void
{
+ try {
unless (referencesLocation.ContainsKey (member))
referencesLocation.Add (member, []);
- referencesLocation [member] ::= location;
+ referencesLocation [member] ::= get_real_location (location, member.Name);
+ }
+ catch {
+ | ex => System.Console.WriteLine (ex.Message);
+ System.Console.WriteLine (ex.StackTrace);
+ }
}
// If you want to recover the messages done by the parser/typer
Added: nemerle/trunk/ncc/testsuite/completion-playground/compl-membersref.n
==============================================================================
--- (empty file)
+++ nemerle/trunk/ncc/testsuite/completion-playground/compl-membersref.n Thu Jul 6 20:39:32 2006
@@ -0,0 +1,37 @@
+using Nemerle.Compiler;
+using Nemerle.Completion;
+using Nemerle.Collections;
+using Nemerle.Utility;
+using System;
+using System.IO;
+using System.Console;
+
+def engine = Engine ();
+def files = Hashtable ();
+def rawArgs = System.Environment.GetCommandLineArgs ().ToList();
+def (progName, args) = rawArgs.Head :: rawArgs.Tail;
+
+when (args.Length == 0)
+{
+ WriteLine(
+ $ "usage: $progName <filename>\n" +
+ " <filename> is the Nemerle source code you want to pass to the \n" +
+ " code completion engine");
+ System.Environment.Exit(1);
+}
+
+foreach (path in args)
+{
+ def source = File.ReadAllText (path);
+ engine.Sources.Add (path, source);
+ files [path] = source;
+}
+
+def type_tree = engine.GetTypeTree ();
+
+foreach (r in engine.ReferencesToMembers)
+{
+ System.Console.WriteLine ("references to: " + r.Key.Name);
+ foreach (p in r.Value)
+ System.Console.WriteLine ("* {0} ({1}, {2})", p.File, p.Line, p.Column);
+}
Modified: nemerle/trunk/ncc/testsuite/completion-playground/compl-s2.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/completion-playground/compl-s2.n (original)
+++ nemerle/trunk/ncc/testsuite/completion-playground/compl-s2.n Thu Jul 6 20:39:32 2006
@@ -11,7 +11,7 @@
mutable n : string;
- public Foo () : void
+ public Foo () : Seasons
{
}
More information about the svn
mailing list