Last active
April 26, 2018 03:44
-
-
Save randy3k/b18ceb94a4daf010528c1d281935cc65 to your computer and use it in GitHub Desktop.
LanguageHandler with custom Notification class
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from LSP.plugin.core.handlers import LanguageHandler | |
from LSP.plugin.core.settings import ClientConfig | |
from LSP.plugin.core.rpc import Notification | |
import os | |
class LspClangRcppPlugin(LanguageHandler): | |
name = "clangd-rcpp" | |
def __init__(self): | |
self._config = ClientConfig( | |
name=self.name, | |
binary_args=["clangd"], | |
tcp_port=None, | |
scopes=["source.c", "source.c++", "source.objc", "source.objc++"], | |
syntaxes=[ | |
"Packages/C++/C.sublime-syntax", | |
"Packages/C++/C++.sublime-syntax", | |
"Packages/Objective-C/Objective-C.sublime-syntax", | |
"Packages/Objective-C/Objective-C++.sublime-syntax" | |
"Packages/RIDE/Rcpp.sublime-syntax" | |
], | |
languageId='c++', | |
enabled=True, | |
init_options=dict(), | |
settings=dict(), | |
env=dict() | |
) | |
@property | |
def config(self): | |
return self._config | |
def on_start(self, window): | |
return True | |
def on_initialized(self, client): | |
class ClangNotification(Notification): | |
@classmethod | |
def didOpen(cls, params: dict): | |
if os.path.isfile(os.path.join(client.project_path, "DESCRIPTION")): | |
params["metadata"] = {"extraFlags": ["-I/usr/local/opt/r/include"]} | |
return cls("textDocument/didOpen", params) | |
client.notification_class = ClangNotification |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment