From 4547125ce945140dc10542e9606b225dd06159b8 Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 5 Oct 2023 17:05:20 -0700 Subject: Add intellisense support for spirv_asm blocks. (#3264) Co-authored-by: Yong He --- source/slang/slang-language-server.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'source/slang/slang-language-server.cpp') diff --git a/source/slang/slang-language-server.cpp b/source/slang/slang-language-server.cpp index ad88ab5ac..3a21fa278 100644 --- a/source/slang/slang-language-server.cpp +++ b/source/slang/slang-language-server.cpp @@ -1470,7 +1470,8 @@ SlangResult LanguageServer::formatting(const LanguageServerProtocol::DocumentFor if (m_formatOptions.clangFormatLocation.getLength() == 0) m_formatOptions.clangFormatLocation = findClangFormatTool(); m_formatOptions.fileName = canonicalPath; - auto edits = formatSource(doc->getText().getUnownedSlice(), -1, -1, -1, m_formatOptions); + List exclusionRange = extractFormattingExclusionRanges(doc->getText().getUnownedSlice()); + auto edits = formatSource(doc->getText().getUnownedSlice(), -1, -1, -1, exclusionRange, m_formatOptions); auto textEdits = translateTextEdits(doc, edits); m_connection->sendResult(&textEdits, responseId); return SLANG_OK; @@ -1493,7 +1494,8 @@ SlangResult LanguageServer::rangeFormatting(const LanguageServerProtocol::Docume auto options = m_formatOptions; if (!m_formatOptions.allowLineBreakInRangeFormatting) options.behavior = FormatBehavior::PreserveLineBreak; - auto edits = formatSource(doc->getText().getUnownedSlice(), args.range.start.line, args.range.end.line, endOffset, options); + List exclusionRange = extractFormattingExclusionRanges(doc->getText().getUnownedSlice()); + auto edits = formatSource(doc->getText().getUnownedSlice(), args.range.start.line, args.range.end.line, endOffset, exclusionRange, options); auto textEdits = translateTextEdits(doc, edits); m_connection->sendResult(&textEdits, responseId); return SLANG_OK; @@ -1521,7 +1523,8 @@ SlangResult LanguageServer::onTypeFormatting(const LanguageServerProtocol::Docum auto options = m_formatOptions; if (!m_formatOptions.allowLineBreakInOnTypeFormatting) options.behavior = FormatBehavior::PreserveLineBreak; - auto edits = formatSource(doc->getText().getUnownedSlice(), args.position.line, args.position.line, cursorOffset, options); + List exclusionRange = extractFormattingExclusionRanges(doc->getText().getUnownedSlice()); + auto edits = formatSource(doc->getText().getUnownedSlice(), args.position.line, args.position.line, cursorOffset, exclusionRange, options); auto textEdits = translateTextEdits(doc, edits); m_connection->sendResult(&textEdits, responseId); return SLANG_OK; -- cgit v1.2.3