[svn] r7067: vs-plugin/trunk/Nemerle.VsIntegration:
LanguageService/NemerleLanguageService.cs LanguageServ...
IT
svnadmin at nemerle.org
Thu Dec 7 06:16:00 CET 2006
Log:
1. LanguageService refactoring.
2. Started working on Navigation DropDown.
Author: IT
Date: Thu Dec 7 06:15:56 2006
New Revision: 7067
Added:
vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleTypeAndMemberDropdownBars .cs
Modified:
vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleLanguageService.cs
vs-plugin/trunk/Nemerle.VsIntegration/Nemerle.VsIntegration.csproj
Modified: vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleLanguageService.cs
==============================================================================
--- vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleLanguageService.cs (original)
+++ vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleLanguageService.cs Thu Dec 7 06:15:56 2006
@@ -5,12 +5,9 @@
using System.Globalization;
using System.IO;
using System.Runtime.InteropServices;
-using System.Security.Permissions;
-using System.Windows.Forms;
using Microsoft.VisualStudio;
using Microsoft.VisualStudio.Package;
-using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
using Microsoft.VisualStudio.TextManager.Interop;
@@ -26,104 +23,16 @@
[Guid(NemerleConstants.LanguageServiceGuidString)]
public class NemerleLanguageService : Microsoft.VisualStudio.Package.LanguageService
{
+ #region Init
+
public NemerleLanguageService()
{
CompiledUnitAstBrowser.ShowLocation += CompiledUnitAstBrowser_ShowLocation;
}
- void CompiledUnitAstBrowser_ShowLocation(Location loc)
- {
- TextSpan span = new TextSpan();
-
- span.iStartLine = loc.Line - 1;
- span.iStartIndex = loc.Column - 1;
- span.iEndLine = loc.EndLine - 1;
- span.iEndIndex = loc.EndColumn - 1;
-
- uint itemID;
- IVsUIHierarchy hierarchy;
- IVsWindowFrame docFrame;
- IVsTextView textView;
-
- VsShell.OpenDocument(Site, loc.File,
- NativeMethods.LOGVIEWID_Code, out hierarchy, out itemID, out docFrame, out textView);
-
- NativeMethods.ThrowOnFailure(docFrame.Show());
-
- if (textView != null)
- {
- try
- {
- NativeMethods.ThrowOnFailure(textView.SetCaretPos(span.iStartLine, span.iStartIndex));
- TextSpanHelper.MakePositive(ref span);
- NativeMethods.ThrowOnFailure(textView.SetSelection(span.iStartLine, span.iStartIndex, span.iEndLine, span.iEndIndex));
- NativeMethods.ThrowOnFailure(textView.EnsureSpanVisible(span));
- }
- catch (Exception ex)
- {
- Trace.WriteLine(ex.Message);
- }
- }
- }
-
LanguagePreferences _preferences;
Dictionary<IVsTextView, NemerleSource> _specialSources = new Dictionary<IVsTextView, NemerleSource>();
- // This array contains the definition of the colorable items provided by
- // this language service.
- // This specific language does not really need to provide colorable items
- // because it does not define any item different from the default ones,
- // but the base class has an empty implementation of
- // IVsProvideColorableItems, so any language service that derives from
- // it must implement the methods of this interface, otherwise there are
- // errors when the shell loads an editor to show a file associated to
- // this language.
- private static NemerleColorableItem[] _colorableItems =
- {
- // The sequential order of these items should be consistent with the ScanTokenColor enum.
- //
- new NemerleColorableItem("Keyword", COLORINDEX.CI_BLUE),
- new NemerleColorableItem("Comment", COLORINDEX.CI_DARKGREEN),
- new NemerleColorableItem("Identifier"),
- new NemerleColorableItem("String", COLORINDEX.CI_MAROON, Color.FromArgb(170, 0, 0)),
- new NemerleColorableItem("Number"),
- new NemerleColorableItem("Text"),
-
- new NemerleColorableItem("Operator"),
- new NemerleColorableItem("Preprocessor Keyword", COLORINDEX.CI_BLUE, Color.FromArgb( 0, 51, 204)),
- new NemerleColorableItem("StringEx", COLORINDEX.CI_MAROON, Color.FromArgb(143, 44, 182)),
- new NemerleColorableItem("String (@ Verbatim)", 2, COLORINDEX.CI_MAROON, Color.FromArgb(170, 0, 0)),
- new NemerleColorableItem("StringEx (@ Verbatim)", 2, COLORINDEX.CI_MAROON, Color.FromArgb(143, 44, 182)),
-
- new NemerleColorableItem("User Types", COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
- new NemerleColorableItem("User Types (Delegates)", COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
- new NemerleColorableItem("User Types (Enums)", COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
- new NemerleColorableItem("User Types (Interfaces)", COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
- new NemerleColorableItem("User Types (Value types)", COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
-
- new NemerleColorableItem("Quotation", 0, COLORINDEX.CI_BROWN),
-
- new NemerleColorableItem("<[ Text ]>", 0),
- new NemerleColorableItem("<[ Keyword ]>", 0, COLORINDEX.CI_BLUE),
- new NemerleColorableItem("<[ Comment ]>", 0, COLORINDEX.CI_DARKGREEN),
- new NemerleColorableItem("<[ Identifier ]>", 0),
- new NemerleColorableItem("<[ String ]>", 0, COLORINDEX.CI_MAROON, Color.FromArgb(170, 0, 0)),
- new NemerleColorableItem("<[ Number ]>", 0),
- new NemerleColorableItem("<[ Operator ]>", 0),
- new NemerleColorableItem("<[ StringEx ]>", 0, COLORINDEX.CI_MAROON, Color.FromArgb(143, 44, 182)),
- new NemerleColorableItem("<[ String (@) ]>", 1, COLORINDEX.CI_MAROON, Color.FromArgb(170, 0, 0)),
- new NemerleColorableItem("<[ StringEx (@) ]>", 1, COLORINDEX.CI_MAROON, Color.FromArgb(143, 44, 182)),
-
- new NemerleColorableItem("<[ User Types ]>", 0, COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
- new NemerleColorableItem("<[ User Types (Delegates) ]>", 0, COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
- new NemerleColorableItem("<[ User Types (Enums) ]>", 0, COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
- new NemerleColorableItem("<[ User Types (Interfaces) ]>", 0, COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
- new NemerleColorableItem("<[ User Types (Value types) ]>", 0, COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
-
- new NemerleColorableItem("Highlight One", COLORINDEX.CI_BLACK, COLORINDEX.CI_YELLOW, Color.Empty, Color.FromArgb(255, 255, 200)),
- new NemerleColorableItem("Highlight Two", COLORINDEX.CI_BLACK, COLORINDEX.CI_GREEN, Color.Empty, Color.FromArgb(230, 255, 230)),
- };
-
public override void Dispose()
{
try
@@ -150,73 +59,6 @@
}
}
- public void AddSpecialSource(NemerleSource source, IVsTextView view)
- {
- _specialSources.Add(view, source);
- }
-
- public override string Name
- {
- get { return Resources.Nemerle; }
- }
-
- public override Source CreateSource(IVsTextLines buffer)
- {
- return new NemerleSource(this, buffer, GetColorizer(buffer));
- }
-
- public override CodeWindowManager CreateCodeWindowManager(IVsCodeWindow codeWindow, Source source)
- {
- CodeWindowManager m = base.CreateCodeWindowManager(codeWindow, source);
-
- // It compiles the source right after it's loaded.
- //
- source.BeginParse();
-
- return m;
- }
-
- public override LanguagePreferences GetLanguagePreferences()
- {
- if (_preferences == null)
- {
- _preferences = new LanguagePreferences(Site, typeof(NemerleLanguageService).GUID, Name);
- _preferences.Init();
- _preferences.EnableFormatSelection = true;
-
-#if DEBUG
- //VladD2: Switch on synchronous mode for debugging purpose!
- //TODO: Comment it if necessary.
- _preferences.EnableAsyncCompletion = false;
-#endif
- }
-
- return _preferences;
- }
-
- #region Colorizer
-
- Dictionary<IVsTextLines, NemerleColorizer> _colorizers = new Dictionary<IVsTextLines,NemerleColorizer>();
-
- public override Colorizer GetColorizer(IVsTextLines buffer)
- {
- NemerleColorizer colorizer;
-
- if (!_colorizers.TryGetValue(buffer, out colorizer))
- {
- colorizer = new NemerleColorizer(this, buffer, (NemerleScanner)GetScanner(buffer));
-
- _colorizers.Add(buffer, colorizer);
- }
-
- return colorizer;
- }
-
- public override IScanner GetScanner(IVsTextLines buffer)
- {
- return new NemerleScanner(this, buffer);
- }
-
#endregion
#region ParseSource
@@ -261,11 +103,9 @@
private AuthoringScope Check(ParseRequest request)
{
- //return null;
Trace.WriteLine(">>>> ##### Check!");
try
{
-
ProjectInfo projectInfo = ProjectInfo.FindProject(request.FileName);
if (projectInfo == null)
@@ -281,12 +121,8 @@
request.Sink.ProcessHiddenRegions = true;
- //projectInfo.UpdateFile(request);
-
projectInfo.Project.Check(
request.FileName,
- // VladD2: Ìíå êàæåòñÿ îò ÿâíîé ïåðåäà÷è ISource íóæíî îòêàçàòüñÿ.
- // Åñëè ÷òî åãî âñåãäà ìîæíî ïîëó÷èòü ó Engine.
new SourceTextManager(projectInfo.GetSource(request.FileName)),
delegate(Location location, string text, bool isExpanded)
{
@@ -454,29 +290,6 @@
return GetDefaultScope(request);
}
- private string GetCodeRegion(
- ParseRequest request,
- int startLine,
- int startCol,
- int endLine, int endCol
- )
- {
- string region;
-
- if (request.View.GetTextStream(
- startLine - 1,
- startCol - 1,
- endLine - 1,
- endCol - 1,
- out region
- ) == VSConstants.S_OK)
- {
- return region;
- }
-
- return "";
- }
-
private AuthoringScope GetDefaultScope(ParseRequest request)
{
ProjectInfo projectInfo = ProjectInfo.FindProject(request.FileName);
@@ -513,56 +326,82 @@
#endregion
- public override ImageList GetImageList()
- {
- return base.GetImageList();
- }
+ #region Colorizing
- public override int ValidateBreakpointLocation(
- IVsTextBuffer buffer,
- int line,
- int col,
- TextSpan[] pCodeSpan
- )
- {
- if (pCodeSpan != null)
+ // This array contains the definition of the colorable items provided by
+ // this language service.
+ // This specific language does not really need to provide colorable items
+ // because it does not define any item different from the default ones,
+ // but the base class has an empty implementation of
+ // IVsProvideColorableItems, so any language service that derives from
+ // it must implement the methods of this interface, otherwise there are
+ // errors when the shell loads an editor to show a file associated to
+ // this language.
+ private static NemerleColorableItem[] _colorableItems =
{
- pCodeSpan[0].iStartLine = line;
- pCodeSpan[0].iStartIndex = col;
- pCodeSpan[0].iEndLine = line;
- pCodeSpan[0].iEndIndex = col;
+ // The sequential order of these items should be consistent with the ScanTokenColor enum.
+ //
+ new NemerleColorableItem("Keyword", COLORINDEX.CI_BLUE),
+ new NemerleColorableItem("Comment", COLORINDEX.CI_DARKGREEN),
+ new NemerleColorableItem("Identifier"),
+ new NemerleColorableItem("String", COLORINDEX.CI_MAROON, Color.FromArgb(170, 0, 0)),
+ new NemerleColorableItem("Number"),
+ new NemerleColorableItem("Text"),
- if (buffer != null)
- {
- int length;
+ new NemerleColorableItem("Operator"),
+ new NemerleColorableItem("Preprocessor Keyword", COLORINDEX.CI_BLUE, Color.FromArgb( 0, 51, 204)),
+ new NemerleColorableItem("StringEx", COLORINDEX.CI_MAROON, Color.FromArgb(143, 44, 182)),
+ new NemerleColorableItem("String (@ Verbatim)", 2, COLORINDEX.CI_MAROON, Color.FromArgb(170, 0, 0)),
+ new NemerleColorableItem("StringEx (@ Verbatim)", 2, COLORINDEX.CI_MAROON, Color.FromArgb(143, 44, 182)),
- buffer.GetLengthOfLine(line, out length);
+ new NemerleColorableItem("User Types", COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
+ new NemerleColorableItem("User Types (Delegates)", COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
+ new NemerleColorableItem("User Types (Enums)", COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
+ new NemerleColorableItem("User Types (Interfaces)", COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
+ new NemerleColorableItem("User Types (Value types)", COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
- pCodeSpan[0].iStartIndex = 0;
- pCodeSpan[0].iEndIndex = length;
- }
+ new NemerleColorableItem("Quotation", 0, COLORINDEX.CI_BROWN),
- return VSConstants.S_OK;
- }
- else
+ new NemerleColorableItem("<[ Text ]>", 0),
+ new NemerleColorableItem("<[ Keyword ]>", 0, COLORINDEX.CI_BLUE),
+ new NemerleColorableItem("<[ Comment ]>", 0, COLORINDEX.CI_DARKGREEN),
+ new NemerleColorableItem("<[ Identifier ]>", 0),
+ new NemerleColorableItem("<[ String ]>", 0, COLORINDEX.CI_MAROON, Color.FromArgb(170, 0, 0)),
+ new NemerleColorableItem("<[ Number ]>", 0),
+ new NemerleColorableItem("<[ Operator ]>", 0),
+ new NemerleColorableItem("<[ StringEx ]>", 0, COLORINDEX.CI_MAROON, Color.FromArgb(143, 44, 182)),
+ new NemerleColorableItem("<[ String (@) ]>", 1, COLORINDEX.CI_MAROON, Color.FromArgb(170, 0, 0)),
+ new NemerleColorableItem("<[ StringEx (@) ]>", 1, COLORINDEX.CI_MAROON, Color.FromArgb(143, 44, 182)),
+
+ new NemerleColorableItem("<[ User Types ]>", 0, COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
+ new NemerleColorableItem("<[ User Types (Delegates) ]>", 0, COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
+ new NemerleColorableItem("<[ User Types (Enums) ]>", 0, COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
+ new NemerleColorableItem("<[ User Types (Interfaces) ]>", 0, COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
+ new NemerleColorableItem("<[ User Types (Value types) ]>", 0, COLORINDEX.CI_CYAN, Color.FromArgb(43, 145, 175)),
+
+ new NemerleColorableItem("Highlight One", COLORINDEX.CI_BLACK, COLORINDEX.CI_YELLOW, Color.Empty, Color.FromArgb(255, 255, 200)),
+ new NemerleColorableItem("Highlight Two", COLORINDEX.CI_BLACK, COLORINDEX.CI_GREEN, Color.Empty, Color.FromArgb(230, 255, 230)),
+ };
+
+ Dictionary<IVsTextLines, NemerleColorizer> _colorizers = new Dictionary<IVsTextLines,NemerleColorizer>();
+
+ public override Colorizer GetColorizer(IVsTextLines buffer)
{
- return VSConstants.S_FALSE;
- }
- }
+ NemerleColorizer colorizer;
- public override void OnIdle(bool periodic)
+ if (!_colorizers.TryGetValue(buffer, out colorizer))
{
- Source src = GetSource(LastActiveTextView);
+ colorizer = new NemerleColorizer(this, buffer, (NemerleScanner)GetScanner(buffer));
- if (src != null && src.LastParseTime == int.MaxValue)
- src.LastParseTime = 0;
+ _colorizers.Add(buffer, colorizer);
+ }
- base.OnIdle(periodic);
+ return colorizer;
}
- public override string GetFormatFilterList()
+ public override IScanner GetScanner(IVsTextLines buffer)
{
- return Resources.NemerleFormatFilter;
+ return new NemerleScanner(this, buffer);
}
// Implementation of IVsProvideColorableItems.
@@ -583,11 +422,44 @@
return VSConstants.S_OK;
}
+ #endregion
+
+ #region Source
+
+ public void AddSpecialSource(NemerleSource source, IVsTextView view)
+ {
+ _specialSources.Add(view, source);
+ }
+
+ public override string Name
+ {
+ get { return Resources.Nemerle; }
+ }
+
+ public override Source CreateSource(IVsTextLines buffer)
+ {
+ return new NemerleSource(this, buffer, GetColorizer(buffer));
+ }
+
+ public override CodeWindowManager CreateCodeWindowManager(IVsCodeWindow codeWindow, Source source)
+ {
+ CodeWindowManager m = base.CreateCodeWindowManager(codeWindow, source);
+
+ // It compiles the source right after it's loaded.
+ //
+ source.BeginParse();
+
+ return m;
+ }
+
+ #endregion
+
+ #region Snippets
+
private int classNameCounter = 0;
public override ExpansionFunction CreateExpansionFunction(
- ExpansionProvider provider,
- string functionName)
+ ExpansionProvider provider, string functionName)
{
ExpansionFunction function = null;
@@ -644,14 +516,6 @@
expansionsList.Add(expansion);
}
- public override ViewFilter CreateViewFilter(CodeWindowManager mgr, IVsTextView newView)
- {
- // This call makes sure debugging events can be received by our view filter.
- //
- GetIVsDebugger();
- return new NemerleViewFilter(mgr, newView);
- }
-
internal class NemerleGetNameExpansionFunction : ExpansionFunction
{
private int nameCount;
@@ -669,5 +533,144 @@
return name;
}
}
+
+ #endregion
+
+ #region Navigation DropDown
+
+ public override TypeAndMemberDropdownBars CreateDropDownHelper(IVsTextView forView)
+ {
+ return null;//new NemerleTypeAndMemberDropdownBars(this, forView);
+ }
+
+ #endregion
+
+ #region LanguagePreferences
+
+ public override LanguagePreferences GetLanguagePreferences()
+ {
+ if (_preferences == null)
+ {
+ _preferences = new LanguagePreferences(Site, typeof(NemerleLanguageService).GUID, Name);
+ _preferences.Init();
+ _preferences.EnableFormatSelection = true;
+
+#if DEBUG
+ //VladD2: Switch on synchronous mode for debugging purpose!
+ //TODO: Comment it if necessary.
+ _preferences.EnableAsyncCompletion = false;
+#endif
+ }
+
+ return _preferences;
+ }
+
+ #endregion
+
+ #region Debugging
+
+ public override int ValidateBreakpointLocation(
+ IVsTextBuffer buffer,
+ int line,
+ int col,
+ TextSpan[] pCodeSpan
+ )
+ {
+ if (pCodeSpan != null)
+ {
+ pCodeSpan[0].iStartLine = line;
+ pCodeSpan[0].iStartIndex = col;
+ pCodeSpan[0].iEndLine = line;
+ pCodeSpan[0].iEndIndex = col;
+
+ if (buffer != null)
+ {
+ int length;
+
+ buffer.GetLengthOfLine(line, out length);
+
+ pCodeSpan[0].iStartIndex = 0;
+ pCodeSpan[0].iEndIndex = length;
+ }
+
+ return VSConstants.S_OK;
+ }
+ else
+ {
+ return VSConstants.S_FALSE;
+ }
+ }
+
+ public override ViewFilter CreateViewFilter(CodeWindowManager mgr, IVsTextView newView)
+ {
+ // This call makes sure debugging events can be received by our view filter.
+ //
+ GetIVsDebugger();
+ return new NemerleViewFilter(mgr, newView);
+ }
+
+ #endregion
+
+ #region OnIdle
+
+ public override void OnIdle(bool periodic)
+ {
+ Source src = GetSource(LastActiveTextView);
+
+ if (src != null && src.LastParseTime == int.MaxValue)
+ src.LastParseTime = 0;
+
+ base.OnIdle(periodic);
+ }
+
+ #endregion
+
+ #region Filter List
+
+ public override string GetFormatFilterList()
+ {
+ return Resources.NemerleFormatFilter;
+ }
+
+ #endregion
+
+ #region ShowLocation event handler
+
+ void CompiledUnitAstBrowser_ShowLocation(Location loc)
+ {
+ TextSpan span = new TextSpan();
+
+ span.iStartLine = loc.Line - 1;
+ span.iStartIndex = loc.Column - 1;
+ span.iEndLine = loc.EndLine - 1;
+ span.iEndIndex = loc.EndColumn - 1;
+
+ uint itemID;
+ IVsUIHierarchy hierarchy;
+ IVsWindowFrame docFrame;
+ IVsTextView textView;
+
+ VsShell.OpenDocument(Site, loc.File,
+ NativeMethods.LOGVIEWID_Code, out hierarchy, out itemID, out docFrame, out textView);
+
+ NativeMethods.ThrowOnFailure(docFrame.Show());
+
+ if (textView != null)
+ {
+ try
+ {
+ NativeMethods.ThrowOnFailure(textView.SetCaretPos(span.iStartLine, span.iStartIndex));
+ TextSpanHelper.MakePositive(ref span);
+ NativeMethods.ThrowOnFailure(textView.SetSelection(span.iStartLine, span.iStartIndex, span.iEndLine, span.iEndIndex));
+ NativeMethods.ThrowOnFailure(textView.EnsureSpanVisible(span));
+ }
+ catch (Exception ex)
+ {
+ Trace.WriteLine(ex.Message);
+ }
+ }
+ }
+
+ #endregion
}
}
Added: vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleTypeAndMemberDropdownBars .cs
==============================================================================
--- (empty file)
+++ vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleTypeAndMemberDropdownBars .cs Thu Dec 7 06:15:56 2006
@@ -0,0 +1,35 @@
+using System;
+using System.Collections;
+
+using Microsoft.VisualStudio.Package;
+using Microsoft.VisualStudio.TextManager.Interop;
+
+using VsPkg = Microsoft.VisualStudio.Package;
+
+namespace Nemerle.VisualStudio.LanguageService
+{
+ class NemerleTypeAndMemberDropdownBars : TypeAndMemberDropdownBars
+ {
+ public NemerleTypeAndMemberDropdownBars(NemerleLanguageService langService, IVsTextView forView)
+ : base(langService)
+ {
+ }
+
+ public override bool OnSynchronizeDropdowns(
+ VsPkg.LanguageService languageService,
+ IVsTextView textView,
+ int line,
+ int col,
+ ArrayList dropDownTypes,
+ ArrayList dropDownMembers,
+ ref int selectedType,
+ ref int selectedMember)
+ {
+ NemerleLanguageService lang = (NemerleLanguageService)languageService;
+
+ //lang.get
+
+ return true;
+ }
+ }
+}
Modified: vs-plugin/trunk/Nemerle.VsIntegration/Nemerle.VsIntegration.csproj
==============================================================================
--- vs-plugin/trunk/Nemerle.VsIntegration/Nemerle.VsIntegration.csproj (original)
+++ vs-plugin/trunk/Nemerle.VsIntegration/Nemerle.VsIntegration.csproj Thu Dec 7 06:15:56 2006
@@ -139,6 +139,7 @@
<Compile Include="LanguageService\NemerleLanguageService.cs" />
<Compile Include="LanguageService\NemerleScanner.cs" />
<Compile Include="LanguageService\NemerleSource.cs" />
+ <Compile Include="LanguageService\NemerleTypeAndMemberDropdownBars .cs" />
<Compile Include="LanguageService\ProjectManager.cs" />
<Compile Include="LanguageService\SourceTextManager.cs" />
<Compile Include="NemerlePackage.cs" />
More information about the svn
mailing list