public NSSource(NSLangServ service, IVsTextLines textLines, Colorizer colorizer) : base(service, textLines, colorizer) { string path = GetFilePath(); Service = service; this.m_scanner = colorizer.Scanner as NSScanner; if (m_scanner != null) m_scanner.m_nssource = this; //Scanner = colorizer.Scanner as NSScanner; LastParseTime = 0; DirtyTime = DateTime.Now; FullScanTime = 0; }
public MakeParser(NSString contents) { Contract.Requires(!NSObject.IsNullOrNil(contents), "contents is null"); m_scanner = NSScanner.scannerWithString(contents); m_scanner.setCharactersToBeSkipped(NSCharacterSet.whitespaceCharacterSet()); // does not include new lines m_scanner.setCaseSensitive(true); m_nameChars = NSMutableCharacterSet.Create(); m_nameChars.formUnionWithCharacterSet(NSCharacterSet.alphanumericCharacterSet()); m_nameChars.addCharactersInString(NSString.Create("_-")); m_eolChars = NSMutableCharacterSet.Create(); m_eolChars.addCharactersInString(NSString.Create("\r\n#")); // lines are ended by comments or new line characters DoParse(); for (int i = 0; i < 4; ++i) // add some blank lines so the user can define new variables that we couldn't pull out of the make file m_variables.Add(new Variable(string.Empty, string.Empty)); ActiveObjects.Add(this); }
public override IScanner GetScanner(IVsTextLines buffer) { //if (m_scanner == null) // m_scanner = new NSScanner(buffer); //return m_scanner; var model = (Microsoft.VisualStudio.ComponentModelHost.IComponentModel)GetService(typeof(Microsoft.VisualStudio.ComponentModelHost.SComponentModel)); var adapterFactory = model.GetService<Microsoft.VisualStudio.Editor.IVsEditorAdaptersFactoryService>(); //var adapter = _serviceprovider_sys.GetService(typeof(IVsEditorAdaptersFactoryService)); //var model = GetService(typeof(SComponentModel)) as IComponentModel; //var adapter = model.GetService<IVsEditorAdaptersFactoryService>(); //Source src = GetSource(buffer); NSScanner nsscanner; IVsTextBufferProvider buffprov = buffer as IVsTextBufferProvider; //adapter.GetDocumentBuffer(srpTextLines); Microsoft.VisualStudio.Text.ITextBuffer itb = adapterFactory.GetDocumentBuffer(buffer); //it2.add if (!itb.Properties.ContainsProperty("scanner_added")) { nsscanner = new NSScanner(buffer); itb.Properties.AddProperty("scanner_added", nsscanner); } return (NSScanner)itb.Properties.GetProperty("scanner_added"); //return null; //return new NSScanner(buffer); }