各自随意
彼此在意
各自忙乱
彼此牵挂
------致友情
微软之前有个项目叫做Monaco Workbench,后来这个项目变成了VSCode,而Monaco Editor(下文简称monaco)就是从这个项目中成长出来的一个web编辑器
acceptSuggestionOnCommitCharacter: true, // 接受关于提交字符的建议
acceptSuggestionOnEnter: 'on', // 接受输入建议 "on" | "off" | "smart"
accessibilityPageSize: 10, // 辅助功能页面大小 Number 说明:控制编辑器中可由屏幕阅读器读出的行数。警告:这对大于默认值的数字具有性能含义。
accessibilitySupport: 'on', // 辅助功能支持 控制编辑器是否应在为屏幕阅读器优化的模式下运行。
autoClosingBrackets: 'always', // 是否自动添加结束括号(包括中括号) "always" | "languageDefined" | "beforeWhitespace" | "never"
autoClosingDelete: 'always', // 是否自动删除结束括号(包括中括号) "always" | "never" | "auto"
autoClosingOvertype: 'always', // 是否关闭改写 即使用insert模式时是覆盖后面的文字还是不覆盖后面的文字 "always" | "never" | "auto"
autoClosingQuotes: 'always', // 是否自动添加结束的单引号 双引号 "always" | "languageDefined" | "beforeWhitespace" | "never"
autoIndent: 'None',
参数如下:
None = 0,
Keep = 1,
Brackets = 2,
Advanced = 3,
Full = 4// 控制编辑器在用户键入、粘贴、移动或缩进行时是否应自动调整缩进
automaticLayout: true, // 自动布局
codeLens: false, // 是否显示codeLens 通过 CodeLens,你可以在专注于工作的同时了解代码所发生的情况 – 而无需离开编辑器。 可以查找代码引用、代码更改、关联的 Bug、工作项、代码评审和单元测试。
codeLensFontFamily: '', // codeLens的字体样式
codeLensFontSize: 14, // codeLens的字体大小
colorDecorators: false, // 呈现内联色彩装饰器和颜色选择器
comments: {
ignoreEmptyLines: true, // 插入行注释时忽略空行。默认为真。
insertSpace: true // 在行注释标记之后和块注释标记内插入一个空格。默认为真。
}, // 注释配置
contextmenu: true, // 启用上下文菜单
columnSelection: false, // 启用列编辑 按下shift键位然后按↑↓键位可以实现列选择 然后实现列编辑
autoSurround: 'never', // 是否应自动环绕选择
copyWithSyntaxHighlighting: true, // 是否应将语法突出显示复制到剪贴板中 即 当你复制到word中是否保持文字高亮颜色
cursorBlinking: 'Solid', // 光标动画样式
cursorSmoothCaretAnimation: true, // 是否启用光标平滑插入动画 当你在快速输入文字的时候 光标是直接平滑的移动还是直接"闪现"到当前文字所处位置
cursorStyle: 'UnderlineThin', // "Block"|"BlockOutline"|"Line"|"LineThin"|"Underline"|"UnderlineThin" 光标样式
cursorSurroundingLines: 0, // 光标环绕行数 当文字输入超过屏幕时 可以看见右侧滚动条中光标所处位置是在滚动条中间还是顶部还是底部 即光标环绕行数 环绕行数越大 光标在滚动条中位置越居中
cursorSurroundingLinesStyle: 'all', // "default" | "all" 光标环绕样式
cursorWidth: 2, // <=25 光标宽度
minimap: {
enabled: false // 是否启用预览图
}, // 预览图设置
folding: true, // 是否启用代码折叠
links: true, // 是否点击链接
overviewRulerBorder: false, // 是否应围绕概览标尺绘制边框
renderLineHighlight: 'gutter', // 当前行突出显示方式
roundedSelection: false, // 选区是否有圆角
scrollBeyondLastLine: false, // 设置编辑器是否可以滚动到最后一行之后
readOnly: false, // 是否为只读模式
tabSize:2,//tab缩进长度
theme: 'vs'// vs, hc-black, or vs-dark
如果是自定义的语言需要先注册自定义语言名称
monaco.languages.register({ id: 'configItem' });
规则 setMonarchTokensProvider 文档
// 如果是已有语言高亮则不需要第一步直接设置高亮规则就可以
monaco.languages.setMonarchTokensProvider('yaml', {
tokenizer: {
root: [[tokenRegx, { token: 'keyword' }]],
},
});
// 自定义语言
monaco.languages.setMonarchTokensProvider('configItem', {
tokenizer: {
root: [[tokenRegx, { token: 'keyword' }]],
},
});
在编辑器中用波浪线标出错误提示
通过 monaco.editor.setModelMarkers 方法标记位置点,文档
const model = this.monacoEditor.getModel()
monaco.editor.setModelMarkers(model, 'json', [{ // json为语言类型
startLineNumber: 2,
endLineNumber: 2,
startColumn: 1,
endColumn: 10,
severity: monaco.MarkerSeverity.Error,
message: `语法错误`,
}])
获取语法错误列表
monaco.editor.getModelMarkers({})
editorIns.updateOptions({
readOnly: true,
});
代码智能提示
useEffect(() => {
ThisEditor.current.registerCompletionItemProvider= monaco.languages.registerCompletionItemProvider('Python', {
provideCompletionItems: function(model, position) {
var word = model.getWordUntilPosition(position);
console.log(ThisEditor.current.getModel().getValueLength(), 'model1')
setLen(ThisEditor.current.getModel().getValueLength())
console.log(word,'word')
var range = {
startLineNumber: position.lineNumber,
endLineNumber: position.lineNumber,
startColumn: word.startColumn,
endColumn: word.endColumn
};
// let suggestions = [];
// 这个keywords就是python.js文件中有的
return {
suggestions: createDependencyProposals(range)
};
}
});
return () => {
ThisEditor.current.registerCompletionItemProvider.dispose()//销毁
}
},[value])
注意:monaco-editor代码提示registerCompletionItemProvider数据重复问题,provideCompletionItems方法多次执行,导致重复添加了相同的数据;completionItemProvider销毁
this.monacoEditor.dispose();
this.monacoEditor.onDidChangeModelContent(() => {
this.monacoEditor.getValue() // 获取编辑器中的语句
})
this.monacoEditor.setValue(newValue)
editor.getSelection(); //获取选中的行信息3
editor.getModel().getLineContent(1); //获取某一行的内容
editor.getModel().getLinesContent(); //获取每一行的内容
monaco.editor.setTheme('vs-dark'); //设置主题
editor._configuration._rawOptions.language //获取编辑器当前语言(初始化值)
editor.getModel().getLanguageId() //动态(已改变编辑器语言)
//内容改变事件
editor.onDidChangeModelContent(function(e){
console.log(e);
console.log(editor.getValue());
});
//添加按键监听
editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_S, function () {
console.log('Ctrl + S 保存')
})
editor.trigger('a', 'editor.action.formatDocument') //触发:格式化文档,更多支持项:editor._actions
//渲染代码得到HTML
monaco.editor.colorize('console.log("Hello world!");', 'javascript').then(function (data) {
console.log(data);
});
//渲染节点代码
<pre id="code" data-lang="javascript" style="width:500px;">console.log("Hello world!");</pre>
monaco.editor.colorizeElement(document.getElementById('code'));
在Monaco Editor中,每个用户可见的编辑器均对应一个IStandaloneCodeEditor。在构造时可以指定一系列选项,如行号、minimap等。
其中,每个编辑器的代码内容等信息存储在ITextModel中。model保存了文档内容、文档语言、文档路径等一系列信息,当editor关闭后model仍保留在内存中
IEditor: 光标位置、销毁editor等
获取与editor或model的相关信息是简单的,在ITextModel和IStandaloneCodeEditor的API文档中不难找到。
以下是一些常用信息,包括获取model实例、获取代码内容(字符串)、获取代码长度、获取光标位置、跳光标到给定位置、置焦点到某编辑器等。
export function getModel(editor) {
return editor.getModel();
}
export function getCode(editor) {
return editor.getModel().getValue();
}
export function getCodeLength(editor) {
// chars, including \n, \t !!!
return editor.getModel().getValueLength();
}
export function getCursorPosition(editor) {
let line = editor.getPosition().lineNumber;
let column = editor.getPosition().column;
return { ln: line, col: column };
}
export function setCursorPosition(editor, ln, col) {
let pos = { lineNumber: ln, column: col };
editor.setPosition(pos);
}
export function setFocus(editor) {
editor.focus();
}
获取编辑器中被选中文案的 range ,返回一个对象,如下
{
startLineNumber: 0,
startColumnNumber: 0,
endLineNumber: 0,
endColumnNumber: 0,
}
diffEditorIns.setModel({
original: monaco.editor.createModel(originalValue, 'javascript'),
modified: monaco.editor.createModel(nowValue, 'javascript'),
});
监听光标是否发生了修改
windows server 2016 离线安装.net3.5
百度ai开放平台1.百度ai开放平台内有众多功能,如文字识别,语音技术等等内容,本文章以身份证识别为例子,教大家怎么使用它啦链接走起:https://cloud.baidu.com/?from=console身份证识别1.点开链接,即可看到文字识别内的身份证识别,请求说明部分,可以看到bash,python,java,c++,PHP等,这里的例子用的是python,选择python拷贝到代码软件内...
打开默认目录下的bashrc文档: ~/.bashrc在文件中(最好在底部)添加文字: source /etc/profile重启系统,发现shell中的文本都变成黑色,配置成功。再也不需要开机时手动输入source命令。...
Python编程软件(专业电脑编程工具)是一款十分优秀好用的专业电脑编程辅助工具。哪款编程工具比较好用?小编为你推荐这款Python编程软件,功能强大全面,使用后可以帮助用户更轻松高效的进行电脑编程操作。相信有不少用户已经体验过之前的版本了,那么现在最新的版本3.9.0版本,已经在本年度向广大用户推出,更强大的功能,细节上的优化,适用于独立的、大型项目的开发,相信你大幅提升编程效率。有需要的朋友不...
[JAVA]利用google的barcode4j生成二维码和条形码1.barcode4j介绍 barcode4j是一款开源的条形码生成库,该库由Java语言编写。能够生成很多种编码的条形码,比如:code-39,code-128等等;2 .在官方网站上下载http://barcode4j.sourceforge.net/相应的文件
文章目录前言:前言:美国环境保护EPA报告中曾经统计过一组统计数据:EPA研究服务器和数据中心得能源效率时发现,实际上服务器只有5%的时间是在工作的,其他时间一直处于休眠状态。软件资源是没有硬件资源性能高 (稳定和效率) 的 (相同功能)一、虚拟化技术(一)、虛拟化技术概念通过虚拟化技术将一台计算机虚拟为多台逻辑计算机, 在一台计算机上同时运行多个逻辑计算机,同时每个逻辑计算机可运行不同的操作系统,应用程序都可以在相互独立的空间内运行而互相不影响,从而提高计算机的工作效率。1、在一个操作系统
Android NDK学习之第一个实例---端口扫描为什么要写一个端口扫描的程序,Java来写不是很方便吗?因为我也没有想到什么例子能够方便的来练习。于是想到以前找到的端口扫描的C代码,于是想用他们来练习。扫描服务端端口的方式有许多种,最简单的就是直接去连接该端口,复杂一些的就是看SYN的应答。其他方式就不说了。下面的portScan.c位于jni目录下:(原本可在li
OBU概要OBU,直译就是车载单元的意思,就是采用DSRC技术,与RSU进行通讯的微波装置。在V2X方案中就是集C-V2X、高精度定位、4G/5G通信、等多功能V2X的5G智能车载终端,面向智能网联汽车、智慧交通领域,具有车路协同、智能计算、远程交互等功能。 基于C-V2X协议栈,与高级辅助驾驶ADAS、自动驾驶ADS深度融合,提供丰富的交通效率及安全等服务,满足高速公路场景下车辆主动安全,效率提升等需求,并支持拓展其他场景应用,满足对C-V2X技术在车联网IoV领域的应用需求。V2X车路协同架构
alter table tablename add column1 int(10),add colunm2 float(10);
1.在官网下载epf样式文件http://www.eclipsecolorthemes.org/2.选择一个喜欢的点击进入,点击下载3.File -->Import--->General -->preferences --->导入下载的样式文件重启MyEcplise即可!! ...
前提:win 系统安装植物大战僵尸,这里有一个百度云网盘是从网上找的,我用了,应该没有毒 https://pan.baidu.com/s/1uygTSdQk48EHItCyHms7Ow安装 HexEditor ,免费版 https://www.hhdsoftware.com/free-hex-editor修改存档1.游戏先创建一个名字,然后试玩一下,去 C:\ProgramData\PopCap Games\PlantsVsZombies\userdata\ 会发现有一个 user3.dat 的
先强调一下,大家一定要先阅读一遍cocos2dx安装目录下的readme!!关于cocos2dx的安装和测试里面其实说的很详细了,这样就可以少走些弯路。下面开始进入正题。再次强调ndk一定要使用r9d版本!需要准备如下:1、ant 这个比较简单,官网上下载安装后配置环境变量即可。2、python 建议使用2.7版本,据说高版本会有问题。3、cocos2dx 3.2