Example #1
0
        /// <summary>
        ///     Create a new <see cref="LanguageClient"/>.
        /// </summary>
        /// <param name="logger">
        ///     The logger to use.
        /// </param>
        LanguageClient(ILogger logger)
        {
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            Log          = logger.ForSourceContext <LanguageClient>();
            Workspace    = new WorkspaceClient(this);
            Window       = new WindowClient(this);
            TextDocument = new TextDocumentClient(this);

            _dispatcher.RegisterHandler(_dynamicRegistrationHandler);
        }
        /// <summary>
        ///     Create a new <see cref="LanguageClient"/>.
        /// </summary>
        /// <param name="loggerFactory">
        ///     The logger to use.
        /// </param>
        LanguageClient(ILoggerFactory loggerFactory)
        {
            if (loggerFactory == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            LoggerFactory = loggerFactory;
            Log           = LoggerFactory.CreateLogger <LanguageClient>();
            Workspace     = new WorkspaceClient(this);
            Window        = new WindowClient(this);
            TextDocument  = new TextDocumentClient(this);

            _dispatcher.RegisterHandler(_dynamicRegistrationHandler);
        }
Example #3
0
        /// <summary>
        ///     Register a message handler.
        /// </summary>
        /// <param name="handler">
        ///     The message handler.
        /// </param>
        /// <returns>
        ///     An <see cref="IDisposable"/> representing the registration.
        /// </returns>
        public IDisposable RegisterHandler(IHandler handler)
        {
            if (handler == null)
            {
                throw new ArgumentNullException(nameof(handler));
            }

            LspDispatcher dispatcher = _dispatcher;

            if (dispatcher == null)
            {
                throw new InvalidOperationException("The connection has not been opened.");
            }

            return(dispatcher.RegisterHandler(handler));
        }
Example #4
0
 /// <summary>
 ///     Register a message handler.
 /// </summary>
 /// <param name="handler">
 ///     The message handler.
 /// </param>
 /// <returns>
 ///     An <see cref="IDisposable"/> representing the registration.
 /// </returns>
 public IDisposable RegisterHandler(IHandler handler) => _dispatcher.RegisterHandler(handler);