A)
Awesome, again these problems - which MD version do you've got installed? 3.0.6 stable? Then please switch to the mono-d.alexanderbothe.com/stableMD repository 3.1.0 beta? Then switch to the mono-d.alexanderbothe.com repo.
OK, that made it work. Very low priority, but maybe it's possible to provide 1 package that would work in both cases (if it were D, something like version(MD_3_0_6){}else version(MD_310_beta) else{...} but i guess it's C#). B)
With code indent I'm not meaning code formatting but the automated indentation generation after e.g. you've pressed <return> and it inserts 3 tabs because you're in a method of a class of an other class.
thanks for finally tackling that! Now that the hard part is done, couldn't there be a way to reindent the entire file (or selection) upon request (control + I on OSX for format doc) by calling this function on each line or something similar? (temporary hack and might be a bit slow but a MUCH needed feature). C) A question about your choice for C# vs D: wouldn't it have been easier to write the bulk of your code in D and interface with the MD codebase through some C wrappers? Assuming there's less than 100 or so functions you need to interface with... That way you'd be able to benefit from hopefully soon to be written code formatting, parsers, etc. D) BUG: I unchecked the option "insert * or + at comment new line" but it still inserts "+" after a new line in a "/+" comment. E) BUG: create a new file, open it in MD (by double clicking for example), press a key (eg "a"), it gives the following error (see below). We can press OK and it'll work, but that's still a bug: An error has occurred Error in text editor extension chain System.ArgumentNullException: Argument cannot be null. Parameter name: key at System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.String]].TryGetValue (System.String key, System.Collections.Generic.List`1& value) [0x00000] in <filename unknown>:0 at D_Parser.Resolver.ASTScanner.AbstractVisitor.HandleNonAliasedImport (D_Parser.Dom.Import imp, MemberFilter VisibleMembers) [0x00000] in <filename unknown>:0 at D_Parser.Resolver.ASTScanner.AbstractVisitor.HandleDBlockNode (D_Parser.Dom.DBlockNode dbn, MemberFilter VisibleMembers, Boolean takePublicImportsOnly) [0x00000] in <filename unknown>:0 at D_Parser.Resolver.ASTScanner.AbstractVisitor.scanChildren (D_Parser.Dom.DBlockNode curScope, MemberFilter VisibleMembers, System.Boolean& breakOnNextScope, Boolean publicImports, Boolean isBaseClass, Boolean isMixinAst, Boolean takeStaticChildrenOnly) [0x00000] in <filename unknown>:0 at D_Parser.Resolver.ASTScanner.AbstractVisitor.ScanBlock (IBlockNode curScope, CodeLocation Caret, MemberFilter VisibleMembers, System.Boolean& breakOnNextScope) [0x00000] in <filename unknown>:0 at D_Parser.Resolver.ASTScanner.AbstractVisitor.ScanBlockUpward (IBlockNode curScope, CodeLocation Caret, MemberFilter VisibleMembers) [0x00000] in <filename unknown>:0 at D_Parser.Resolver.ASTScanner.AbstractVisitor.IterateThroughScopeLayers (CodeLocation Caret, MemberFilter VisibleMembers) [0x00000] in <filename unknown>:0 at D_Parser.Resolver.ASTScanner.MemberCompletionEnumeration.EnumAllAvailableMembers (ICompletionDataGenerator cdgen, IBlockNode ScopedBlock, IStatement ScopedStatement, CodeLocation Caret, D_Parser.Misc.ParseCacheList CodeCache, MemberFilter VisibleMembers, D_Parser.Resolver.ConditionalCompilationFlags compilationEnvironment) [0x00000] in <filename unknown>:0 at D_Parser.Completion.CtrlSpaceCompletionProvider.BuildCompletionDataInternal (IEditorData Editor, System.String EnteredText) [0x00000] in <filename unknown>:0 at D_Parser.Completion.AbstractCompletionProvider.BuildCompletionData (IEditorData Editor, System.String EnteredText) [0x00000] in <filename unknown>:0 at D_Parser.Completion.AbstractCompletionProvider.BuildCompletionData (ICompletionDataGenerator dataGen, IEditorData editor, System.String EnteredText) [0x00000] in <filename unknown>:0 at MonoDevelop.D.Completion.DCodeCompletionSupport.BuildCompletionData (MonoDevelop.Ide.Gui.Document EditorDocument, IAbstractSyntaxTree SyntaxTree, MonoDevelop.Ide.CodeCompletion.CodeCompletionContext ctx, MonoDevelop.Ide.CodeCompletion.CompletionDataList l, Char triggerChar) [0x00000] in <filename unknown>:0 at MonoDevelop.D.DEditorCompletionExtension.HandleCodeCompletion (MonoDevelop.Ide.CodeCompletion.CodeCompletionContext completionContext, Char triggerChar, System.Int32& triggerWordLength) [0x00000] in <filename unknown>:0 at MonoDevelop.Ide.Gui.Content.CompletionTextEditorExtension.KeyPress (Key key, Char keyChar, ModifierType modifier) [0x000f0] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-3.0-series/90a53d19/source/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/CompletionTextEditorExtension.cs:126 at MonoDevelop.D.DEditorCompletionExtension.KeyPress (Key key, Char keyChar, ModifierType modifier) [0x00000] in <filename unknown>:0 at MonoDevelop.Ide.Gui.Content.TextEditorExtension.KeyPress (Key key, Char keyChar, ModifierType modifier) [0x00013] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-3.0-series/90a53d19/source/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs:109 at MonoDevelop.D.Formatting.Indentation.DTextEditorIndentation.KeyPress (Key key, Char keyChar, ModifierType modifier) [0x00000] in <filename unknown>:0 at MonoDevelop.Ide.Gui.Content.TextEditorExtension.KeyPress (Key key, Char keyChar, ModifierType modifier) [0x00013] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-3.0-series/90a53d19/source/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs:109 at MonoDevelop.Ide.Gui.Content.TextEditorExtension.KeyPress (Key key, Char keyChar, ModifierType modifier) [0x00013] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-3.0-series/90a53d19/source/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs:109 at MonoDevelop.Ide.Gui.Content.TextEditorExtension.KeyPress (Key key, Char keyChar, ModifierType modifier) [0x00013] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-3.0-series/90a53d19/source/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs:109 at MonoDevelop.Ide.Gui.Content.TextEditorExtension.KeyPress (Key key, Char keyChar, ModifierType modifier) [0x00013] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-3.0-series/90a53d19/source/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs:109 at MonoDevelop.Ide.Gui.Content.TextEditorExtension.KeyPress (Key key, Char keyChar, ModifierType modifier) [0x00013] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-3.0-series/90a53d19/source/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs:109 at MonoDevelop.SourceEditor.ExtensibleTextEditor.ExtensionKeyPress (Key key, UInt32 ch, ModifierType state) [0x00000] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-3.0-series/90a53d19/source/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtensibleTextEditor.cs:236