public void TextViewCreated(IWpfTextView textView) { ITextDocument document; if (!TextDocumentFactoryService.TryGetTextDocument(textView.TextDataModel.DocumentBuffer, out document)) { return; } var textViewAdapter = EditorAdaptersFactoryService.GetViewAdapter(textView); if (textViewAdapter == null) { return; } if (BuilderInfo.Supports(document.FilePath)) { // add commands to view form or code textView.Properties.AddProperty(ViewFormKey, new AdapterCommand(textViewAdapter, ServiceProvider, VSConstants.GUID_VSStandardCommandSet97, (uint)VSConstants.VSStd97CmdID.ViewForm, () => ViewDesigner(document))); textView.Properties.AddProperty(ViewCodeKey, new AdapterCommand(textViewAdapter, ServiceProvider, VSConstants.GUID_VSStandardCommandSet97, (uint)VSConstants.VSStd97CmdID.ViewCode, () => ViewCode(document))); } else if (BuilderInfo.IsCodeBehind(document.FilePath)) { textView.Properties.AddProperty(ViewFormKey, new AdapterCommand(textViewAdapter, ServiceProvider, VSConstants.GUID_VSStandardCommandSet97, (uint)VSConstants.VSStd97CmdID.ViewForm, () => ViewDesignSource(document))); } }
public int CreateEditorInstance( uint grfCreateDoc, string pszMkDocument, string pszPhysicalView, IVsHierarchy pvHier, uint itemid, System.IntPtr punkDocDataExisting, out System.IntPtr ppunkDocView, out System.IntPtr ppunkDocData, out string pbstrEditorCaption, out Guid pguidCmdUI, out int pgrfCDW) { Debug.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering {0} CreateEditorInstace()", this.ToString())); // Initialize to null ppunkDocView = IntPtr.Zero; ppunkDocData = IntPtr.Zero; pguidCmdUI = Constants.EtoPreviewEditorFactory_guid; pgrfCDW = 0; pbstrEditorCaption = null; if (!BuilderInfo.Supports(pszMkDocument)) { return(VSConstants.VS_E_UNSUPPORTEDFORMAT); } // Validate inputs if ((grfCreateDoc & (VSConstants.CEF_OPENFILE | VSConstants.CEF_SILENT)) == 0) { return(VSConstants.E_INVALIDARG); } var textBuffer = GetTextBuffer(punkDocDataExisting); if (textBuffer == null) { return(VSConstants.VS_E_INCOMPATIBLEDOCDATA); } // Create the Document (editor) var editor = new EtoPreviewPane(editorPackage, pszMkDocument, textBuffer); ppunkDocView = Marshal.GetIUnknownForObject(editor); ppunkDocData = Marshal.GetIUnknownForObject(textBuffer); pbstrEditorCaption = " [Preview]"; return(VSConstants.S_OK); }