[mod] improve sock err handling
This commit is contained in:
parent
9c805c2a21
commit
b7d0d8e03d
11 changed files with 108 additions and 71 deletions
|
|
@ -1,32 +1,32 @@
|
|||
import { EditorState } from '@codemirror/state';
|
||||
import { openSearchPanel, highlightSelectionMatches,searchKeymap } from '@codemirror/search';
|
||||
import {openLintPanel, lintGutter, lintKeymap,linter,setDiagnostics,} from "@codemirror/lint"
|
||||
import { openSearchPanel, highlightSelectionMatches, searchKeymap } from '@codemirror/search';
|
||||
import { openLintPanel, lintGutter, lintKeymap, linter, setDiagnostics, } from "@codemirror/lint"
|
||||
import { indentWithTab, history, defaultKeymap, historyKeymap } from '@codemirror/commands';
|
||||
import { foldGutter, indentOnInput, indentUnit, bracketMatching, foldKeymap, syntaxHighlighting, defaultHighlightStyle } from '@codemirror/language';
|
||||
import { closeBrackets, autocompletion, closeBracketsKeymap, completionKeymap } from '@codemirror/autocomplete';
|
||||
import { lineNumbers, highlightActiveLineGutter, highlightSpecialChars, drawSelection, dropCursor, rectangularSelection, crosshairCursor, highlightActiveLine, keymap, EditorView } from '@codemirror/view';
|
||||
import {markdown} from "@codemirror/lang-markdown";
|
||||
import { markdown } from "@codemirror/lang-markdown";
|
||||
// Theme
|
||||
import { oneDark } from "@codemirror/theme-one-dark";
|
||||
import { LSPClient, LSPPlugin,languageServerSupport } from "@codemirror/lsp-client";
|
||||
import { LSPClient, LSPPlugin, languageServerSupport } from "@codemirror/lsp-client";
|
||||
// Language
|
||||
import { xml } from "@codemirror/lang-xml";
|
||||
|
||||
// no error checking
|
||||
function simpleWebSocketTransport(uri) {
|
||||
let handlers = [];
|
||||
let sock = new WebSocket(uri);
|
||||
sock.addEventListener("close", (event) => { alert("sock gone!")})
|
||||
sock.addEventListener("error", (event) => { alert("sock error!")})
|
||||
sock.onmessage = e => { for (let h of handlers) h(e.data.toString()); };
|
||||
return new Promise(resolve => {
|
||||
return new Promise(function (resolve, reject) {
|
||||
let sock = new WebSocket(uri);
|
||||
sock.onmessage = e => { for (let h of handlers) h(e.data.toString()); };
|
||||
sock.onerror = e => reject(e);
|
||||
sock.onopen = () => resolve({
|
||||
socket: sock,
|
||||
send: (message) => sock.send(message),
|
||||
subscribe: (handler) => handlers.push(handler),
|
||||
unsubscribe: (handler) => handlers = handlers.filter(h => h != handler)
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
const baseExts = [
|
||||
|
|
@ -62,8 +62,8 @@ const baseExts = [
|
|||
syntaxHighlighting(defaultHighlightStyle, { fallback: true })
|
||||
];
|
||||
|
||||
function createEditorState(initialContents, extensions,options = {}) {
|
||||
|
||||
function createEditorState(initialContents, extensions, options = {}) {
|
||||
|
||||
if (options.oneDark)
|
||||
extensions.push(oneDark);
|
||||
|
||||
|
|
@ -78,8 +78,8 @@ function createEditorView(state, parent) {
|
|||
}
|
||||
class xqLinter {
|
||||
constructor(parameters) {
|
||||
this.fred=parameters;
|
||||
this.fred = parameters;
|
||||
}
|
||||
}
|
||||
|
||||
export { createEditorState, createEditorView, openSearchPanel,openLintPanel, languageServerSupport, baseExts , simpleWebSocketTransport,linter, LSPPlugin,setDiagnostics,xqLinter,LSPClient};
|
||||
export { createEditorState, createEditorView, openSearchPanel, openLintPanel, languageServerSupport, baseExts, simpleWebSocketTransport, linter, LSPPlugin, setDiagnostics, xqLinter, LSPClient };
|
||||
Loading…
Add table
Add a link
Reference in a new issue