123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8" />
- <title></title>
- <!--jquery-->
- <script src="./extra/jquery/jquery.min.js"></script>
- <script src="./monaco-editor/min/vs/loader.min.js"></script>
- <script>
- $(function () {
- //引入monaco编辑器
- require.config({ paths: { vs: 'monaco-editor/min/vs' } });
- require(['vs/editor/editor.main'], function () {
- //初始化资源树
- var editor = monaco.editor.create(document.getElementById("editor"), {
- language: "javascript"
- });
- //const yourArray = ["名称", "青霉素注射剂", "苄星青霉素注射剂"];
- // 注册自定义的智能提示
- monaco.languages.registerCompletionItemProvider('javascript', {
- provideCompletionItems: function () {
- // 根据你的数组,创建提示
- const suggestions = yourArray.map(word => ({
- label: word,
- kind: monaco.languages.CompletionItemKind.Text,
- insertText: word
- }));
- return { suggestions };
- },
- });
- // 你的数组,包含词语和对应的拼音简码
- const yourArray = [
- { word: '词语1', pinyin: 'CY1' },
- { word: '词语2', pinyin: 'CY2' },
- { word: '词语3', pinyin: 'CY3' },
- ];
- // 注册自定义的智能提示
- monaco.languages.registerCompletionItemProvider('javascript', {
- provideCompletionItems: function (model, position) {
- // 获取光标悬停所在行的所有内容
- const lineword = model.getLineContent(position.lineNumber);
- // 获取光标悬停的单词
- const word = model.getWordAtPosition(position)?.word;
- // 根据你的需求,返回你的自定义提示
- const suggestions = yourArray.flatMap(item => {
- debugger;
- if (word === item.word.substring(0, word.length) || word === item.pinyin.substring(0, word.length)) {
- return [
- {
- label: item.word,
- kind: monaco.languages.CompletionItemKind.Text,
- insertText: item.word
- }
- ];
- } else {
- return [];
- }
- });
- return { suggestions };
- },
- });
- });
- });
- </script>
- </head>
- <body>
- <div id="editor" style="width:100%;height:100vh;">
- </div>
- </body>
- </html>
|