protected LanguageFeatures(CodeEditor codeEditor, ICodeFoldingStrategy codeFoldingStrategy, ICodeCompletionStrategy codeCompletionStrategy) {
      this.codeEditor = codeEditor;
      this.codeFoldingStrategy = codeFoldingStrategy;
      this.codeCompletionStrategy = codeCompletionStrategy;

      commandBinding = new CommandBinding(codeEditor.CompletionCommand, CodeCompletionRequestedHandler);
      if (codeFoldingStrategy != null) AddCodeFoldingStrategy();
      if (codeCompletionStrategy != null) AddCodeComplectionStrategy();
    }
        protected LanguageFeatures(CodeEditor codeEditor, ICodeFoldingStrategy codeFoldingStrategy, ICodeCompletionStrategy codeCompletionStrategy)
        {
            this.codeEditor             = codeEditor;
            this.codeFoldingStrategy    = codeFoldingStrategy;
            this.codeCompletionStrategy = codeCompletionStrategy;

            commandBinding = new CommandBinding(codeEditor.CompletionCommand, CodeCompletionRequestedHandler);
            if (codeFoldingStrategy != null)
            {
                AddCodeFoldingStrategy();
            }
            if (codeCompletionStrategy != null)
            {
                AddCodeComplectionStrategy();
            }
        }