diff --git a/Frameworks/buffer/src/buffer.h b/Frameworks/buffer/src/buffer.h index d53926c3..68620fac 100644 --- a/Frameworks/buffer/src/buffer.h +++ b/Frameworks/buffer/src/buffer.h @@ -109,6 +109,7 @@ namespace ng text::indent_t const& indent () const { return _indent; } bool set_grammar (bundles::item_ptr const& grammarItem); + parse::grammar_ptr grammar () const { return _grammar; } scope::context_t scope (size_t i, bool includeDynamic = true) const; std::map scopes (size_t from, size_t to) const; diff --git a/Frameworks/buffer/src/parsing.cc b/Frameworks/buffer/src/parsing.cc index 2c19d18d..2ff2b34c 100644 --- a/Frameworks/buffer/src/parsing.cc +++ b/Frameworks/buffer/src/parsing.cc @@ -33,6 +33,7 @@ namespace ng void handle_reply (result_t const& result); private: + parse::grammar_ptr _grammar; size_t _client_key; buffer_t& _buffer; size_t _revision; @@ -50,6 +51,7 @@ namespace ng buffer_parser_t::buffer_parser_t (buffer_t& buffer, parse::stack_ptr const& parserState, std::string const& line, std::pair const& range, size_t const& batch_start, size_t limit_redraw) : _buffer(buffer) { + _grammar = buffer.grammar(); _client_key = server().register_client(this); _revision = buffer.revision(); server().send_request(_client_key, (request_t){ parserState, line, range, batch_start, limit_redraw });