Add SQL, Erlang, and Forth highlighter implementations and tests for LSP process and transport handling.
- Added highlighters for new languages (SQL, Erlang, Forth) with filetype recognition. - Updated and reorganized syntax files to maintain consistency and modularity. - Introduced LSP transport framing unit tests and JSON decoding/dispatch tests. - Refactored `LspManager`, integrating UTF-16/UTF-8 position conversions and robust diagnostics handling. - Enhanced server start/restart logic with workspace root detection and logging to improve LSP usability.
This commit is contained in:
28
Editor.cc
28
Editor.cc
@@ -1,13 +1,14 @@
|
||||
#include <algorithm>
|
||||
#include <utility>
|
||||
#include <filesystem>
|
||||
#include "HighlighterRegistry.h"
|
||||
#include "NullHighlighter.h"
|
||||
#include "syntax/HighlighterRegistry.h"
|
||||
#include "syntax/NullHighlighter.h"
|
||||
|
||||
#include "Editor.h"
|
||||
#include "HighlighterRegistry.h"
|
||||
#include "CppHighlighter.h"
|
||||
#include "NullHighlighter.h"
|
||||
#include "lsp/LspManager.h"
|
||||
#include "syntax/HighlighterRegistry.h"
|
||||
#include "syntax/CppHighlighter.h"
|
||||
#include "syntax/NullHighlighter.h"
|
||||
|
||||
|
||||
Editor::Editor() = default;
|
||||
@@ -29,6 +30,15 @@ Editor::SetStatus(const std::string &message)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Editor::NotifyBufferSaved(Buffer *buf)
|
||||
{
|
||||
if (lsp_manager_ && buf) {
|
||||
lsp_manager_->onBufferSaved(buf);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Buffer *
|
||||
Editor::CurrentBuffer()
|
||||
{
|
||||
@@ -181,6 +191,10 @@ Editor::OpenFile(const std::string &path, std::string &err)
|
||||
eng->InvalidateFrom(0);
|
||||
}
|
||||
}
|
||||
// Notify LSP (if wired) for current buffer open
|
||||
if (lsp_manager_) {
|
||||
lsp_manager_->onBufferOpened(&cur);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -216,6 +230,10 @@ Editor::OpenFile(const std::string &path, std::string &err)
|
||||
// Add as a new buffer and switch to it
|
||||
std::size_t idx = AddBuffer(std::move(b));
|
||||
SwitchTo(idx);
|
||||
// Notify LSP (if wired) for current buffer open
|
||||
if (lsp_manager_) {
|
||||
lsp_manager_->onBufferOpened(&buffers_[curbuf_]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user