public static NemerleSource GetFileSource(IServiceProvider site, string filePath) { NemerleLanguageService lang = (NemerleLanguageService)site.GetService( typeof(NemerleLanguageService)); return((NemerleSource)lang.GetSource(filePath)); }
public int FDoIdle(uint grfidlef) { if (_allProjectInSolutionIsLoaded) { _allProjectInSolutionIsLoaded = false; AfterSolutionLoaded(); } NemerleLanguageService lang = GetService(typeof(NemerleLanguageService)) as NemerleLanguageService; var isPeriodic = (grfidlef & (uint)_OLEIDLEF.oleidlefPeriodic) != 0; if (lang != null) { lang.OnIdle(isPeriodic); } if (_libraryManager != null) { _libraryManager.OnIdle(); } if (_sourceOutlinerToolWindow != null) { _sourceOutlinerToolWindow.OnIdle(); } return(0); }
private CodeGeneratorOptions GetCodeGeneratorOptions() { NemerleLanguageService langService = (_fileNode.GetService(typeof(NemerleLanguageService)) as NemerleLanguageService); if (langService == null) { throw new ApplicationException("Language service not found"); } CodeGeneratorOptions codeGenOptions = new CodeGeneratorOptions(); LanguagePreferences prefs = langService.GetLanguagePreferences(); if (prefs.InsertTabs) { codeGenOptions.IndentString = "\t"; } else { codeGenOptions.IndentString = new string(' ', prefs.IndentSize ); } // Set deliberately (TODO) codeGenOptions.BlankLinesBetweenMembers = true; codeGenOptions.BracingStyle = "Block"; codeGenOptions.ElseOnClosing = false; return(codeGenOptions); }
public ProjectInfo( NemerleProjectNode projectNode, IVsHierarchy hierarchy, NemerleLanguageService languageService, string fileName, string location ) { ErrorHelper.ThrowIsNull(languageService, "languageService"); ErrorHelper.ThrowIsNull(projectNode, "projectNode"); ErrorHelper.ThrowIsNull(hierarchy, "hierarchy"); Debug.Assert(projectNode.Site != null); LanguageService = languageService; _errorList = new ErrorListProvider(languageService.Site); ProjectFullPath = Path.GetFullPath(fileName); _projectNode = projectNode; _hierarchy = hierarchy; _engine = EngineFactory.Create(this, new TraceWriter(), false); // it enables parser working. Engine.TypedtreeCreated += delegate { _buildTypedtreeCount++; AstToolWindow tool = AstToolWindow.AstTool; if (tool != null) { tool.BuildTypedtreeCount = _buildTypedtreeCount; } }; if (!string.IsNullOrEmpty(location)) { _projectLocation = location; } else { _projectLocation = Path.GetDirectoryName(fileName); } if (!_projectLocation.EndsWith("\\")) { _projectLocation += "\\"; } }
private object CreateService(IServiceContainer container, Type serviceType) { if (serviceType == typeof(NemerleLanguageService)) { NemerleLanguageService language = new NemerleLanguageService(this); language.SetSite(this); RegisterForIdleTime(); return(language); } else if (serviceType == typeof(INemerleLibraryManager)) { return(_libraryManager = new NemerleLibraryManager(this)); } return(null); }
public GotoInfoLibraryNode(NemerleLanguageService langSvc, GotoInfo gotoInfo, string caption) : base(gotoInfo.UsageTypeToString()) { _langSvc = langSvc; _gotoInfo = gotoInfo; _caption = caption; CanGoToSource = true; var project = ProjectInfo.FindProject(gotoInfo.FilePath); if (project != null) { Text = _gotoInfo.GetLineOfCode(project.Engine).Trim().Replace("\t", " "); } else //я не представляю как такое может случиться, но если случится { Text = "<not loaded>"; //то нужно скоприровать функционал ручной загрузки файла и поиска строки из конструктора GotoUsageForm } }
public int FDoIdle(uint grfidlef) { NemerleLanguageService lang = GetService(typeof(NemerleLanguageService)) as NemerleLanguageService; var isPeriodic = (grfidlef & (uint)_OLEIDLEF.oleidlefPeriodic) != 0; if (lang != null) { lang.OnIdle(isPeriodic); } if (_libraryManager != null) { _libraryManager.OnIdle(); } if (_sourceOutlinerToolWindow != null) { _sourceOutlinerToolWindow.OnIdle(); } return(0); }