Click here to Skip to main content
15,879,096 members
Articles / Programming Languages / C#

CodeDom Assistant

Rate me:
Please Sign up or sign in to vote.
4.84/5 (26 votes)
21 Sep 20074 min read 137.2K   6.6K   82  
Generating CodeDom Code By Parsing C# or VB
using System;
using System.ComponentModel;
namespace ScintillaNet
{
	/// <summary>
	/// Interface representing the native Scintilla Message Based API. In addition
	/// to wrappers around each of the messages I have included an additional Method
	/// named SendMessageDirect with 9 overloads. This allows you to send messages
	/// to the Scintilla DefWndProc bypassing Windows' SendMessage. Each of the other
	/// methods wrap calls to SendMessageDirect.
	/// 
	/// Scintilla explicetly implements this interface. To use these methods on 
	/// a Scintilla control Cast it as INativeScintilla or use NativeScintilla
	/// property.
	/// 
	/// The reason for this interface is to keep the "regular" interface surface
	/// area of the Scintilla control as clean and .NETish as possible. Also
	/// this means when you want a direct native interface there's no other 
	/// absracted members (Aside from SendMessageDirect ;) cluttering the native
	/// interface.
	/// </summary>
	public interface INativeScintilla
	{
		void AddRefDocument(IntPtr pDoc);
		void AddStyledText(int length, byte[] s);
		void AddText(int length, string s);
		void Allocate(int bytes);
		void AppendText(int length, string s);
		void AssignCmdKey(int keyDefinition, int sciCommand);
		bool AutoCActive();
		void AutoCCancel();
		void AutoCComplete();
		bool AutoCGetAutoHide();
		bool AutoCGetCancelAtStart();
		bool AutoCGetChooseSingle();
		int AutoCGetCurrent();
		bool AutoCGetDropRestOfWord();
		bool AutoCGetIgnoreCase();
		int AutoCGetMaxHeight();
		int AutoCGetMaxWidth();
		char AutoCGetSeparator();
		char AutoCGetTypeSeparator();
		int AutoCPosStart();
		void AutoCSelect(string select);
		event EventHandler<NativeScintillaEventArgs> AutoCSelection;
		void AutoCSetAutoHide(bool autoHide);
		void AutoCSetCancelAtStart(bool cancel);
		void AutoCSetChooseSingle(bool chooseSingle);
		void AutoCSetDropRestOfWord(bool dropRestOfWord);
		void AutoCSetFillUps(string chars);
		void AutoCSetIgnoreCase(bool ignoreCase);
		void AutoCSetMaxHeight(int rowCount);
		void AutoCSetMaxWidth(int characterCount);
		void AutoCSetSeparator(char separator);
		void AutoCSetTypeSeparator(char separatorCharacter);
		void AutoCShow(int lenEntered, string list);
		void AutoCStops(string chars);
		void BackTab();
		void BeginUndoAction();
		void BraceBadLight(int pos1);
		void BraceHighlight(int pos1, int pos2);
		int BraceMatch(int pos, int maxReStyle);
		bool CallTipActive();
		void CallTipCancel();
		event EventHandler<NativeScintillaEventArgs> CallTipClick;
		int CallTipGetPosStart();
		void CallTipSetBack(int colour);
		void CallTipSetFore(int colour);
		void CallTipSetForeHlt(int colour);
		void CallTipSetHlt(int hlStart, int hlEnd);
		void CallTipShow(int posStart, string definition);
		void CallTipUseStyle(int tabsize);
		void Cancel();
		bool CanPaste();
		bool CanRedo();
		bool CanUndo();
		event EventHandler<NativeScintillaEventArgs> Change;
		event EventHandler<NativeScintillaEventArgs> CharAdded;
		void CharLeft();
		void CharLeftExtend();
		void CharLeftRectExtend();
		void CharRight();
		void CharRightExtend();
		void CharRightRectExtend();
		void ChooseCaretX();
		void Clear();
		void ClearAll();
		void ClearAllCmdKeys();
		void ClearCmdKey(int keyDefinition);
		void ClearDocumentStyle();
		void ClearRegisteredImages();
		void Colourise(int start, int end);
		void ConvertEols(int eolMode);
		void Copy();
		void CopyRange(int start, int end);
		void CopyText(int length, string text);
		IntPtr CreateDocument();
		void Cut();
		void DeleteBack();
		void DeleteBackNotLine();
		void DelLineLeft();
		void DelLineRight();
		void DelWordLeft();
		void DelWordRight();
		int DocLineFromVisible(int displayLine);
		void DocumentEnd();
		void DocumentEndExtend();
		void DocumentStart();
		void DocumentStartExtend();
		event EventHandler<NativeScintillaEventArgs> DoubleClick;
		event EventHandler<NativeScintillaEventArgs> DwellEnd;
		event EventHandler<NativeScintillaEventArgs> DwellStart;
		void EditToggleOvertype();
		void EmptyUndoBuffer();
		int EncodeFromUtf8(string utf8, out string encoded);
		void EndUndoAction();
		void EnsureVisible(int line);
		void EnsureVisibleEnforcePolicy(int line);
		int FindColumn(int line, int column);
		int FindText(int searchFlags, ref TextToFind ttf);
		int FormatRange(bool bDraw, ref RangeToFormat pfr);
		void FormFeed();
		int GetAnchor();
		bool GetBackSpaceUnIndents();
		bool GetBufferedDraw();
		int GetCaretFore();
		int GetCaretLineBack();
		int GetCaretLineBackAlpha();
		bool GetCaretLineVisible();
		int GetCaretPeriod();
		bool GetCaretSticky();
		int GetCaretStyle();
		int GetCaretWidth();
		char GetCharAt(int position);
		int GetCodePage();
		int GetColumn(int position);
		int GetControlCharSymbol();
		int GetCurLine(int textLen, out string text);
		int GetCurrentPos();
		int GetCursor();
		IntPtr GetDirectFunction();
		IntPtr GetDirectPointer();
		IntPtr GetDocPointer();
		int GetEdgeColour();
		int GetEdgeColumn();
		int GetEdgeMode();
		bool GetEndAtLastLine();
		int GetEndStyled();
		int GetEolMode();
		int GetFirstVisibleLine();
		bool GetFocus();
		bool GetFoldExpanded(int line);
		uint GetFoldLevel(int line);
		int GetFoldParent(int line);
		int GetHighlightGuide();
		int GetHotSpotActiveBack();
		int GetHotSpotActiveFore();		
		bool GetHotSpotActiveUnderline();
		bool GetHotSpotSingleLine();
		int GetIndicatorCurrent();
		int GetIndicatorValue();
		int GetPositionCache();
		bool GetHScrollBar();
		int GetIndent();
		bool GetIndentationGuides();
		int GetLastChild(int line, int level);
		int GetLayoutCache();
		int GetLength();
		int GetLexer();
		int GetLine(int line, out string text);
		int GetLineCount();
		int GetLineEndPosition(int line);
		int GetLineIndentation(int line);
		int GetLineIndentPosition(int line);
		int GetLineSelEndPosition(int line);
		int GetLineSelStartPosition(int line);
		int GetLineState(int line);
		bool GetLineVisible(int line);
		int GetMarginLeft();
		int GetMarginMaskN(int margin);
		int GetMarginRight();
		bool GetMarginSensitiveN(int margin);
		int GetMarginTypeN(int margin);
		int GetMarginWidthN(int margin);
		int GetMaxLineState();
		int GetModEventMask();
		bool GetModify();
		bool GetMouseDownCaptures();
		int GetMouseDwellTime();
		bool GetOvertype();
		bool GetPasteConvertEndings();
		int GetPrintColourMode();
		int GetPrintMagnification();
		int GetPrintWrapMode();
		void GetProperty(string key, out string value);
		void GetPropertyExpanded(string key, out string value);
		int GetPropertyInt(string key, int @default);
		bool GetReadOnly();
		int GetScrollWidth();
		int GetSearchFlags();
		int GetSelectionEnd();
		int GetSelectionMode();
		int GetSelectionStart();
		void GetSelText(out string text);
		int GetStatus();
		byte GetStyleAt(int position);
		[Obsolete("The modern style indicators make this obsolete, this should always be 7")]
		int GetStyleBits();
		int GetStyleBitsNeeded();
		void GetStyledText(ref TextRange tr);
		bool GetTabIndents();
		int GetTabWidth();
		int GetTargetEnd();
		int GetTargetStart();
		int GetText(int length, out string text);
		int GetTextLength();
		int GetTextRange(ref TextRange tr);
		bool GetTwoPhaseDraw();
		bool GetUndoCollection();
		bool GetUsePalette();
		bool GetUseTabs();
		bool GetViewEol();
		int GetViewWS();
		bool GetVScrollBar();
		int GetWrapMode();
		int GetWrapStartIndent();
		int GetWrapVisualFlags();
		int GetWrapVisualFlagsLocation();
		int GetXOffset();
		int GetZoom();
		void GotoLine(int line);
		void GotoPos(int position);
		void GrabFocus();
		void HideLines(int lineStart, int lineEnd);
		void HideSelection(bool hide);
		void Home();
		void HomeDisplay();
		void HomeDisplayExtend();
		void HomeExtend();
		void HomeRectExtend();
		void HomeWrap();
		void HomeWrapExtend();
		event EventHandler<NativeScintillaEventArgs> HotSpotClick;
		event EventHandler<NativeScintillaEventArgs> HotSpotDoubleclick;
		uint IndicatorAllOnFor(int position);
		void IndicatorClearRange(int position, int fillLength);
		event EventHandler<NativeScintillaEventArgs> IndicatorClick;
		void IndicatorFillRange(int position, int fillLength);
		int IndicatorEnd(int indicator, int position);
		event EventHandler<NativeScintillaEventArgs> IndicatorRelease;
		int IndicatorStart(int indicator, int position);
		int IndicatorValueAt(int indicator, int position);
		int IndicGetFore(int indicatorNumber);
		int IndicGetStyle(int indicatorNumber);
		bool IndicGetUnder(int indicatorNumber);
		void IndicSetFore(int indicatorNumber, int colour);
		void IndicSetStyle(int indicatorNumber, int indicatorStyle);
		void IndicSetUnder(int indicatorNumber, bool under);
		void InsertText(int pos, string text);
		event EventHandler<NativeScintillaEventArgs> Key;
		void LineCopy();
		void LineCut();
		void LineDelete();
		void LineDown();
		void LineDownExtend();
		void LineDownRectExtend();
		void LineDuplicate();
		void LineEnd();
		void LineEndDisplay();
		void LineEndDisplayExtend();
		void LineEndExtend();
		void LineEndRectExtend();
		void LineEndWrap();
		void LineEndWrapExtend();
		int LineFromPosition(int pos);
		int LineLength(int line);
		void LineScroll(int columns, int lines);
		void LineScrollDown();
		void LineScrollUp();
		void LinesJoin();
		int LinesOnScreen();
		void LinesSplit(int pixelWidth);
		void LineTranspose();
		void LineUp();
		void LineUpExtend();
		void LineUpRectExtend();
		void LoadLexerLibrary(string path);
		void LowerCase();
		event EventHandler<NativeScintillaEventArgs> MacroRecord;
		event EventHandler<NativeScintillaEventArgs> MarginClick;
		int MarkerAdd(int line, int markerNumber);
		void MarkerAddSet(int line, uint markerMask);
		void MarkerDefine(int markerNumber, int markerSymbol);
		void MarkerDefinePixmap(int markerNumber, string xpm);
		void MarkerDelete(int line, int markerNumber);
		void MarkerDeleteAll(int markerNumber);
		void MarkerDeleteHandle(int handle);
		int MarkerGet(int line);
		int MarkerLineFromHandle(int handle);
		int MarkerNext(int lineStart, uint markerMask);
		int MarkerPrevious(int lineStart, uint markerMask);
		void MarkerSetAlpha(int markerNumber, int alpha);
		void MarkerSetBack(int markerNumber, int colour);
		void MarkerSetFore(int markerNumber, int colour);
		event EventHandler<NativeScintillaEventArgs> Modified;
		event EventHandler<NativeScintillaEventArgs> ModifyAttemptRO;
		void MoveCaretInsideView();
		event EventHandler<NativeScintillaEventArgs> NeedShown;
		void NewLine();
		void Null();
		void PageDown();
		void PageDownExtend();
		void PageDownRectExtend();
		void PageUp();
		void PageUpExtend();
		void PageUpRectExtend();
		event EventHandler<NativeScintillaEventArgs> Painted;
		void ParaDown();
		void ParaDownExtend();
		void ParaUp();
		void ParaUpExtend();
		void Paste();
		int PointXFromPosition(int position);
		int PointYFromPosition(int position);
		int PositionAfter(int position);
		int PositionBefore(int position);
		int PositionFromLine(int line);
		int PositionFromPoint(int x, int y);
		int PositionFromPointClose(int x, int y);
		void Redo();
		void RegisterImage(int type, string xpmData);
		void ReleaseDocument(IntPtr pDoc);
		void ReplaceSel(string text);
		int ReplaceTarget(int length, string text);
		int ReplaceTargetRE(int length, string text);
		event EventHandler<NativeScintillaEventArgs> SavePointLeft;
		event EventHandler<NativeScintillaEventArgs> SavePointReached;
		void ScrollCaret();
		void SearchAnchor();
		int SearchInTarget(int length, string text);
		int SearchNext(int searchFlags, string text);
		int SearchPrev(int searchFlags, string text);
		void SelectAll();
		void SelectionDuplicate();
		bool SelectionIsRectangle();
		IntPtr SendMessageDirect(uint msg, IntPtr wParam, IntPtr lParam);
		int SendMessageDirect(uint msg);
		int SendMessageDirect(uint msg, int wParam);
		int SendMessageDirect(uint msg, VOID wParam, int lParam);
		int SendMessageDirect(uint msg, VOID wParam, string lParam);
		int SendMessageDirect(uint msg, int wParam, int lParam);
		int SendMessageDirect(uint msg, int wParam, uint lParam);
		int SendMessageDirect(uint msg, bool wParam, int lParam);
		int SendMessageDirect(uint msg, int wParam, bool lParam);
		int SendMessageDirect(uint msg, string wParam);
		int SendMessageDirect(uint msg, bool wParam);
		int SendMessageDirect(uint msg, string wParam, int lParam);
		int SendMessageDirect(uint msg, int wParam, string lParam);
		int SendMessageDirect(uint msg, int wParam, out string text);
		int SendMessageDirect(uint msg, out string text);
		int SendMessageDirect(uint msg, IntPtr wParam, out string lParam, int length);
		int SendMessageDirect(uint msg, string wParam, out string lParam);
		int SendMessageDirect(uint msg, string wParam, string lParam);
		void SetAnchor(int position);
		void SetBackSpaceUnIndents(bool bsUnIndents);
		void SetBufferedDraw(bool isBuffered);
		void SetCaretFore(int alpha);
		void SetCaretLineBack(int show);
		void SetCaretLineBackAlpha(int alpha);
		void SetCaretLineVisible(bool colour);
		void SetCaretPeriod(int milliseconds);
		void SetCaretSticky(bool useCaretStickyBehaviour);
		void SetCaretStyle(int style);
		void SetCaretWidth(int pixels);
		void SetCharsDefault();
		void SetCodePage(int codePage);
		void SetControlCharSymbol(int symbol);
		void SetCurrentPos(int position);
		void SetCursor(int curType);
		void SetDocPointer(IntPtr pDoc);
		void SetEdgeColour(int colour);
		void SetEdgeColumn(int column);
		void SetEdgeMode(int mode);
		void SetEndAtLastLine(bool endAtLastLine);
		void SetEolMode(int eolMode);
		void SetFocus(bool focus);
		void SetFoldExpanded(int line, bool expanded);
		void SetFoldFlags(int flags);
		void SetFoldLevel(int line, uint level);
		void SetFoldMarginColour(bool useSetting, int colour);
		void SetFoldMarginHiColour(bool useSetting, int colour);
		void SetHighlightGuide(int column);
		void SetHotspotActiveBack(bool useHotSpotBackColour, int colour);
		void SetHotspotActiveFore(bool useHotSpotForeColour, int colour);
		void SetHotspotActiveUnderline(bool underline);
		void SetHotspotSingleLine(bool singleLine);
		void SetHScrollBar(bool visible);
		void SetIndent(int widthInChars);
		void SetIndentationGuides(bool view);
		void SetIndicatorCurrent(int indicator);
		void SetIndicatorValue(int value);
		void SetKeywords(int keywordSet, string keyWordList);
		void SetLayoutCache(int cacheMode);
		int SetLengthForEncode(int bytes);
		void SetLexer(int lexer);
		void SetLexerLanguage(string name);
		void SetLineIndentation(int line, int indentation);
		void SetLineState(int line, int value);
		void SetMarginLeft(int pixels);
		void SetMarginMaskN(int margin, int mask);
		void SetMarginRight(int pixels);
		void SetMarginSensitiveN(int margin, bool sensitive);
		void SetMarginTypeN(int margin, int type);
		void SetMarginWidthN(int margin, int pixelWidth);
		void SetModEventMask(int modEventMask);
		void SetMouseDownCaptures(bool captures);
		void SetMouseDwellTime(int mouseDwellTime);
		void SetOvertype(bool overType);
		void SetPasteConvertEndings(bool convert);
		void SetPositionCache(int size);
		void SetPrintColourMode(int mode);
		void SetPrintMagnification(int magnification);
		void SetPrintWrapMode(int wrapMode);
		void SetProperty(string key, string value);
		void SetReadOnly(bool readOnly);
		void SetSavePoint();
		void SetScrollWidth(int pixelWidth);
		void SetSearchFlags(int searchFlags);
		void SetSel(int anchorPos, int currentPos);
		void SetSelBack(bool useSelectionBackColour, int colour);
		void SetSelectionEnd(int position);
		void SetSelectionMode(int mode);
		void SetSelectionStart(int position);
		void SetSelFore(bool useSelectionForeColour, int colour);
		void SetStatus(int status);
		[Obsolete("The modern style indicators make this obsolete, this should always be 7")]
		void SetStyleBits(int bits);
		void SetStyling(int length, int style);
		void SetStylingEx(int length, string styles);
		void SetTabIndents(bool tabIndents);
		void SetTabWidth(int widthInChars);
		void SetTargetEnd(int pos);
		void SetTargetStart(int pos);
		void SetText(string text);
		void SetTwoPhaseDraw(bool twoPhase);
		void SetUndoCollection(bool collectUndo);
		void SetUsePalette(bool allowPaletteUse);
		void SetUseTabs(bool useTabs);
		void SetViewEol(bool visible);
		void SetViewWS(int wsMode);
		void SetVisiblePolicy(int visiblePolicy, int visibleSlop);
		void SetVScrollBar(bool visible);
		void SetWhitespaceBack(bool useWhitespaceForeColour, int colour);
		void SetWhitespaceChars(string chars);
		void SetWhitespaceFore(bool useWhitespaceForeColour, int colour);
		void SetWordChars(string chars);
		void SetWrapMode(int wrapMode);
		void SetWrapStartIndent(int indent);
		void SetWrapVisualFlags(int wrapVisualFlags);
		void SetWrapVisualFlagsLocation(int wrapVisualFlagsLocation);
		void SetXCaretPolicy(int caretPolicy, int caretSlop);
		void SetXOffset(int xOffset);
		void SetYCaretPolicy(int caretPolicy, int caretSlop);
		void SetZoom(int zoomInPoints);
		void ShowLines(int lineStart, int lineEnd);
		void StartRecord();
		void StartStyling(int position, int mask);
		void StopRecord();
		void StutteredPageDown();
		void StutteredPageDownExtend();
		void StutteredPageUp();
		void StutteredPageUpExtend();
		void StyleClearAll();
		event EventHandler<NativeScintillaEventArgs> StyleNeeded;
		void StyleResetDefault();
		int StyleGetBack(int styleNumber);
		bool StyleGetBold(int styleNumber);
		int StyleGetCase(int styleNumber);
		bool StyleGetChangeable(int styleNumber);
		int StyleGetCharacterSet(int styleNumber);
		bool StyleGetEOLFilled(int styleNumber);
		void StyleGetFont(int styleNumber, out string fontName);
		int StyleGetFore(int styleNumber);
		bool StyleGetHotSpot(int styleNumber);
		bool StyleGetItalic(int styleNumber);
		int StyleGetSize(int styleNumber);
		bool StyleGetUnderline(int styleNumber);
		bool StyleGetVisible(int styleNumber);
		void StyleSetBack(int styleNumber, int colour);
		void StyleSetBold(int styleNumber, bool bold);
		void StyleSetCase(int styleNumber, int caseMode);
		void StyleSetChangeable(int styleNumber, bool changeable);
		void StyleSetCharacterSet(int styleNumber, int charSet);
		void StyleSetEOLFilled(int styleNumber, bool eolFilled);
		void StyleSetFont(int styleNumber, string fontName);
		void StyleSetFore(int styleNumber, int colour);
		void StyleSetHotSpot(int styleNumber, bool hotspot);
		void StyleSetItalic(int styleNumber, bool italic);
		void StyleSetSize(int styleNumber, int sizeInPoints);
		void StyleSetUnderline(int styleNumber, bool underline);
		void StyleSetVisible(int styleNumber, bool visible);
		void Tab();
		int TargetAsUtf8(out string s);
		void TargetFromSelection();
		int TextHeight(int line);
		int TextWidth(int styleNumber, string text);
		void ToggleCaretSticky();
		void ToggleFold(int line);
		void Undo();
		event EventHandler<NativeScintillaEventArgs> UpdateUI;
		void UpperCase();
		event EventHandler<NativeScintillaEventArgs> UriDropped;
		void UsePopUp(bool bEnablePopup);
		event EventHandler<NativeScintillaEventArgs> UserListSelection;
		void UserListShow(int listType, string list);
		void VCHome();
		void VCHomeExtend();
		void VCHomeRectExtend();
		void VCHomeWrap();
		void VCHomeWrapExtend();
		int VisibleFromDocLine(int docLine);
		int WordEndPosition(int position, bool onlyWordCharacters);
		void WordLeft();
		void WordLeftEnd();
		void WordLeftEndExtend();
		void WordLeftExtend();
		void WordPartLeft();
		void WordPartLeftExtend();
		void WordPartRight();
		void WordPartRightExtend();
		void WordRight();
		void WordRightEnd();
		void WordRightEndExtend();
		void WordRightExtend();
		int WordStartPosition(int position, bool onlyWordCharacters);
		int WrapCount(int docLine);
		event EventHandler<NativeScintillaEventArgs> Zoom;
		void ZoomIn();
		void ZoomOut();
	}
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
Australia Australia
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions