|
Bash++
Bash++ compiler internal documentation
|
The main server class for handling LSP requests and notifications. More...
#include <BashppServer.h>

Classes | |
| struct | DebounceState |
| class | DebounceStateMap |
| struct | NotificationHandlerEntry |
| struct | RequestHandlerEntry |
Public Member Functions | |
| BashppServer ()=default | |
| ~BashppServer ()=default | |
| BashppServer (const BashppServer &other)=delete | |
| BashppServer & | operator= (const BashppServer &other)=delete |
| BashppServer (BashppServer &&other) noexcept=delete | |
| BashppServer & | operator= (BashppServer &&other) noexcept=delete |
| void | mainLoop () |
| void | setLogFile (const std::string &path) |
| void | setTargetBashVersion (const BashVersion &version) |
| void | setThreadCount (size_t num_threads) |
| GenericResponseMessage | shutdown (const GenericRequestMessage &request) |
| void | exit (const GenericNotificationMessage ¬ification) |
| void | cleanup () |
| void | processMessage (const std::string &message) |
| GenericResponseMessage | handleInitialize (const GenericRequestMessage &request) |
| GenericResponseMessage | handleDefinition (const GenericRequestMessage &request) |
| GenericResponseMessage | handleHover (const GenericRequestMessage &request) |
| GenericResponseMessage | handleDocumentSymbol (const GenericRequestMessage &request) |
| GenericResponseMessage | handleRename (const GenericRequestMessage &request) |
| GenericResponseMessage | handleReferences (const GenericRequestMessage &request) |
| GenericResponseMessage | handleCompletion (const GenericRequestMessage &request) |
| CompletionList | handleATCompletion (const CompletionParams ¶ms) |
| CompletionList | handleDOTCompletion (const CompletionParams ¶ms) |
| void | handleDidOpen (const GenericNotificationMessage &request) |
| void | handleDidChange (const GenericNotificationMessage &request) |
| void | handleDidChangeWatchedFiles (const GenericNotificationMessage &request) |
| void | handleDidClose (const GenericNotificationMessage &request) |
| void | handleDidSave (const GenericNotificationMessage &request) |
| void | sendResponse (const GenericResponseMessage &response) |
| void | sendNotification (const GenericNotificationMessage ¬ification) |
| void | publishDiagnostics (std::shared_ptr< bpp::bpp_program > program) |
| void | add_include_path (const std::string &path) |
| void | set_suppress_warnings (bool suppress) |
| template<typename... Args> | |
| void | log (Args &&... args) |
Private Types | |
| using | RequestHandler = GenericResponseMessage(BashppServer::*)(const GenericRequestMessage &) |
| using | NotificationHandler = void(BashppServer::*)(const GenericNotificationMessage &) |
Private Member Functions | |
| void | _sendMessage (const std::string &message) |
| void | processRequest (const GenericRequestMessage &request) |
| void | processNotification (const GenericNotificationMessage ¬ification) |
Static Private Member Functions | |
| static std::string | readHeaderLine (std::streambuf *buffer) |
| static GenericResponseMessage | invalidRequestHandler (const GenericRequestMessage &request) |
| static void | invalidNotificationHandler (const GenericNotificationMessage &request) |
Private Attributes | |
| pid_t | pid = getpid() |
| std::atomic< bool > | exiting = false |
| std::atomic< bool > | shutdown_requested = false |
| std::istream * | input_stream = &std::cin |
| std::ostream * | output_stream = &std::cout |
| std::unique_ptr< ThreadPool > | thread_pool = std::make_unique<ThreadPool>(std::thread::hardware_concurrency()) |
| ProgramPool | program_pool = ProgramPool(10) |
| std::ofstream | log_file |
| DebounceStateMap | debounce_states = DebounceStateMap(&program_pool) |
| std::atomic< bool > | processing_didChange {false} |
| CompletionList | default_completion_list |
Static Private Attributes | |
| static std::mutex | output_mutex |
| static std::mutex | log_mutex |
| static constexpr std::array< RequestHandlerEntry, 8 > | request_handlers |
| Maps request types to the functions that handle them. | |
| static constexpr std::array< NotificationHandlerEntry, 6 > | notification_handlers |
| Maps notification types to the functions that handle them. | |
The main server class for handling LSP requests and notifications.
This class manages the server's lifecycle, handles incoming messages, processes requests and notifications, logs, and maintains the state of the server.
|
private |
|
private |
|
default |
|
default |
|
delete |
|
deletenoexcept |
|
private |
| void bpp::BashppServer::add_include_path | ( | const std::string & | path | ) |
| void bpp::BashppServer::cleanup | ( | ) |
| void bpp::BashppServer::exit | ( | const GenericNotificationMessage & | notification | ) |
| CompletionList bpp::BashppServer::handleATCompletion | ( | const CompletionParams & | params | ) |
| GenericResponseMessage bpp::BashppServer::handleCompletion | ( | const GenericRequestMessage & | request | ) |
| GenericResponseMessage bpp::BashppServer::handleDefinition | ( | const GenericRequestMessage & | request | ) |
| void bpp::BashppServer::handleDidChange | ( | const GenericNotificationMessage & | request | ) |
| void bpp::BashppServer::handleDidChangeWatchedFiles | ( | const GenericNotificationMessage & | request | ) |
| void bpp::BashppServer::handleDidClose | ( | const GenericNotificationMessage & | request | ) |
| void bpp::BashppServer::handleDidOpen | ( | const GenericNotificationMessage & | request | ) |
| void bpp::BashppServer::handleDidSave | ( | const GenericNotificationMessage & | request | ) |
| GenericResponseMessage bpp::BashppServer::handleDocumentSymbol | ( | const GenericRequestMessage & | request | ) |
| CompletionList bpp::BashppServer::handleDOTCompletion | ( | const CompletionParams & | params | ) |
| GenericResponseMessage bpp::BashppServer::handleHover | ( | const GenericRequestMessage & | request | ) |
| GenericResponseMessage bpp::BashppServer::handleInitialize | ( | const GenericRequestMessage & | request | ) |
| GenericResponseMessage bpp::BashppServer::handleReferences | ( | const GenericRequestMessage & | request | ) |
| GenericResponseMessage bpp::BashppServer::handleRename | ( | const GenericRequestMessage & | request | ) |
|
staticprivate |
|
staticprivate |
|
inline |
| void bpp::BashppServer::mainLoop | ( | ) |
|
deletenoexcept |
|
delete |
| void bpp::BashppServer::processMessage | ( | const std::string & | message | ) |
|
private |
|
private |
| void bpp::BashppServer::publishDiagnostics | ( | std::shared_ptr< bpp::bpp_program > | program | ) |
|
staticprivate |
| void bpp::BashppServer::sendNotification | ( | const GenericNotificationMessage & | notification | ) |
| void bpp::BashppServer::sendResponse | ( | const GenericResponseMessage & | response | ) |
| void bpp::BashppServer::set_suppress_warnings | ( | bool | suppress | ) |
| void bpp::BashppServer::setLogFile | ( | const std::string & | path | ) |
| void bpp::BashppServer::setTargetBashVersion | ( | const BashVersion & | version | ) |
| void bpp::BashppServer::setThreadCount | ( | size_t | num_threads | ) |
| GenericResponseMessage bpp::BashppServer::shutdown | ( | const GenericRequestMessage & | request | ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
staticprivate |
|
staticconstexprprivate |
Maps notification types to the functions that handle them.
|
staticprivate |
|
private |
|
private |
|
private |
|
private |
|
staticconstexprprivate |
Maps request types to the functions that handle them.
|
private |
|
private |