diff options
| -rw-r--r-- | lexers/LexCPP.cxx | 7 | ||||
| -rw-r--r-- | lexlib/LexerSimple.cxx | 8 | 
2 files changed, 12 insertions, 3 deletions
| diff --git a/lexers/LexCPP.cxx b/lexers/LexCPP.cxx index ce8c39360..588f42e6e 100644 --- a/lexers/LexCPP.cxx +++ b/lexers/LexCPP.cxx @@ -188,6 +188,7 @@ struct OptionsCPP {  	bool identifiersAllowDollars;  	bool trackPreprocessor;  	bool updatePreprocessor; +	bool fold;  	bool foldComment;  	bool foldCommentExplicit;  	bool foldPreprocessor; @@ -198,6 +199,7 @@ struct OptionsCPP {  		identifiersAllowDollars = true;  		trackPreprocessor = true;  		updatePreprocessor = true; +		fold = false;  		foldComment = false;  		foldCommentExplicit = true;  		foldPreprocessor = false; @@ -231,6 +233,8 @@ struct OptionSetCPP : public OptionSet<OptionsCPP> {  		DefineProperty("lexer.cpp.update.preprocessor", &OptionsCPP::updatePreprocessor,  			"Set to 1 to update preprocessor definitions when #define found."); +		DefineProperty("fold", &OptionsCPP::fold); +  		DefineProperty("fold.comment", &OptionsCPP::foldComment,  			"This option enables folding multi-line comments and explicit fold points when using the C++ lexer. "  			"Explicit fold points allows adding extra folding by placing a //{ comment at the start and a //} " @@ -800,6 +804,9 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle,  void SCI_METHOD LexerCPP::Fold(unsigned int startPos, int length, int initStyle, IDocument *pAccess) { +	if (!options.fold) +		return; +  	LexAccessor styler(pAccess);  	unsigned int endPos = startPos + length; diff --git a/lexlib/LexerSimple.cxx b/lexlib/LexerSimple.cxx index 2e35f19c3..4d0e178ca 100644 --- a/lexlib/LexerSimple.cxx +++ b/lexlib/LexerSimple.cxx @@ -49,7 +49,9 @@ void SCI_METHOD LexerSimple::Lex(unsigned int startPos, int lengthDoc, int initS  }  void SCI_METHOD LexerSimple::Fold(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess) { -	Accessor astyler(pAccess, &props); -	module->Fold(startPos, lengthDoc, initStyle, keyWordLists, astyler); -	astyler.Flush(); +	if (props.GetInt("fold")) { +		Accessor astyler(pAccess, &props); +		module->Fold(startPos, lengthDoc, initStyle, keyWordLists, astyler); +		astyler.Flush(); +	}  } | 
