* Add lints for floating and misued promises * Add logging async errors in main * Add async error catch in test-utils * Change any to unknown * Trap promise errors and ignore more await warnings * Add more ignores and toSync helper * Fix more lint warnings * Add more ignores and fixes * Add more reject reporting * Add accepting arbitrary parameters to toSync() * Fix more lints * Revert unintentional change to non-arrow function * Revert unintentional change to use arrow function * Fix new warnings in main with auto updater * Fix formatting * Change lints to error This is what the recommended type checked rules do. * Fix to properly report promise rejections * Fix formatting * Fix formatting * Remove unused import * Remove unused convenience function * Move type helpers * Fix to not return promise when caller doesn't expect it * Add ignores to lsp code
29 lines
777 B
TypeScript
29 lines
777 B
TypeScript
import { Extension, Prec } from '@codemirror/state'
|
|
import { EditorView, keymap, KeyBinding, ViewPlugin } from '@codemirror/view'
|
|
|
|
import { LanguageServerPlugin } from './lsp'
|
|
|
|
export default function lspFormatExt(
|
|
plugin: ViewPlugin<LanguageServerPlugin>
|
|
): Extension {
|
|
const formatKeymap: readonly KeyBinding[] = [
|
|
{
|
|
key: 'Alt-Shift-f',
|
|
run: (view: EditorView) => {
|
|
let value = view.plugin(plugin)
|
|
if (!value) return false
|
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
value.requestFormatting()
|
|
return true
|
|
},
|
|
},
|
|
]
|
|
|
|
// Create an extension for the key mappings.
|
|
const formatKeymapExt = Prec.highest(
|
|
keymap.computeN([], () => [formatKeymap])
|
|
)
|
|
|
|
return formatKeymapExt
|
|
}
|