我有Visual Studio Online(现在是VS Team Services)帐户作为我的MSDN订阅的一部分.我设法在那里创建一个项目,在我的本地Visual Studio 2013中设置工作区并签入一些测试代码.我想知道是否也可以使用Web界面而不是本地VS编辑代码?
这是一个尚未发现此工具的截图.

我正在尝试以一种文本内容的某些区域是只读的方式配置Monaco编辑器.更准确地说,我希望第一行和最后一行是只读的.示例如下:
public something(someArgument) { // This is readonly
// This is where the user can put his code
// more user code...
} // readonly again
Run Code Online (Sandbox Code Playgroud)
我已经用Ace编辑器做了类似的事情,但我无法想办法用摩纳哥做到这一点.有一个ModelContentChangedEvent你可以注册一个监听器,但它发生了变化后被触发(所以为时已晚,以防止任何事情).有更多摩纳哥经验的人是否知道如何做到这一点?
提前致谢!
该VSCode文件包含有关如何创建使用新colorizers细节.tmLanguage文件.VSCode使用的Monaco编辑器支持使用基于JSON的Monarch格式定义语法高亮显示,但我看不到如何使用Monarch来定义VSCode扩展中的语法.
有没有办法使用Monarch格式而不是textmate样式语言文件来定义新的VSCode语法?
我正在使用 loader.js 创建摩纳哥编辑器,但在控制台中出现两次错误“每个脚本文件只能有一个匿名定义调用”。
<script src="/monaco-editor/min/vs/loader.js"></script>
Run Code Online (Sandbox Code Playgroud)
创建编辑器的代码
require.config({ paths: { 'vs': '/monaco-editor/min/vs' }});
require(['vs/editor/editor.main'], function() {
monacoEditor= monaco.editor.create(document.getElementById('coding-editor'), {
value: [
'function x() {',
'\tconsole.log("Hello world!");',
'}'
].join('\n'),
language: 'javascript'
});
});
Run Code Online (Sandbox Code Playgroud)
我尝试搜索该问题并找到以下相关答案:
您正在加载的某些代码正在使用匿名模块 ID 调用定义。你可以:
通过 AMD 加载器加载该代码(即手动需要它),以便 AMD 加载器创建标签<script>。
在 AMD 加载程序之前加载该代码(即定义对该代码段不可用)
在该脚本的评估期间取消设置定义(即,如果您使用标签加载它<script>,则在之前取消设置定义并在之后恢复它)
尝试取消设置define.jquery,据我所知jquery可能会在定义函数上检查它
这个页面已经有很多 jquery 了,我之所以理解这一点是因为 jQuery。请帮助一些人通过例子让我理解。谢谢
如何将我的自定义 C# 程序集添加到 Monaco 编辑器,以便编辑器识别/完成我的程序集类型?
我该如何选择和限制 Monaco Editor 可以使用的 .net 库?
提前致谢。
我试图为摩纳哥编辑器实现我的自定义完成项提供程序,并且我期望每次击键都会调用completionItemProvider。相反,它会在每两个字符后触发。
function createDependencyProposals(range) {
// returning a static list of proposals, not even looking at the prefix (filtering is done by the Monaco editor),
// here you could do a server side lookup
return [
{
label: '"lodash"',
kind: monaco.languages.CompletionItemKind.Function,
documentation: "The Lodash library exported as Node.js modules.",
insertText: '"lodash": "*"',
range: range
},
{
label: '"express"',
kind: monaco.languages.CompletionItemKind.Function,
documentation: "Fast, unopinionated, minimalist web framework",
insertText: '"express": "*"',
range: range
},
{
label: '"mkdirp"',
kind: monaco.languages.CompletionItemKind.Function,
documentation: "Recursively mkdir, like …Run Code Online (Sandbox Code Playgroud) 据我了解,monaco-editor和 VSCode 使用两种不同的格式来定义主题。
似乎 VSC 的早期版本主要使用tmTheme定义格式,允许使用此工具转换主题(另请参阅2017 年的 GitHub 问题)。但是,由于 VSC 现在使用新的格式来定义其主题,我想知道是否有一种(简单)方法可以在 Monaco 编辑器中使用现有的 VSC 主题。
非常感谢你的帮助!:)
PS 2019 年的 GitHub 问题评论似乎表明确实没有简单的方法可以做到这一点,但希望从那时起事情已经发生了变化。
visual-studio-monaco visual-studio-code vscode-extensions monaco-editor
我之前一直在我的项目中使用 CodeMirror 编辑器,但最近我决定切换到 Monaco 编辑器。
现在我试图为我的用户提供他们以前拥有的所有功能(+ 摩纳哥提供的附加功能),因此我想为他们提供类似的方式来显示 linting 警告/错误。
我在我的 React 应用程序中托管了一个摩纳哥编辑器。
到目前为止,我已经让编辑器在编辑器安装后打开查找控件,但我需要用一些文本预先填充它。
目前的代码如下所示:
...
class CodeEditorMonaco extends Component {
constructor (props) {
super(props)
this.editorDidMount = this.editorDidMount.bind(this)
this.editor = null
}
editorDidMount (editor, monaco) {
editor.focus()
editor.getAction('actions.find').run()
}
render () {
return (
<div className='code-editor'>
<MonacoEditor
width='100%'
height='75vh'
language='json'
editorDidMount={this.editorDidMount}
ref={editor => { this.editor = editor }}
/>
</div>
)
}
}
...
Run Code Online (Sandbox Code Playgroud)
我认为 API 文档并不清楚这是否可行。
我的第一直觉是这样做,
editor.getAction('actions.find').run('text here')
但这似乎行不通
当您在编辑器本身中突出显示一个单词,然后按下时,CMD+F您将获得预先填充文本的查找控件,因此我相信这是可以实现的。
任何帮助,将不胜感激。
我正在尝试将 Monaco Editor 用于 XML 语言,但在渲染编辑器实例时,XML 字符串没有被格式化,而它对于 JSON 工作正常。
我在编辑器的上下文菜单中也没有找到“格式化文档”选项(如果它是用 XML 语言打开的)。Monaco 编辑器默认支持 XML 格式吗?
javascript ×4
editor ×2
amd ×1
azure-devops ×1
c# ×1
icons ×1
lint ×1
reactjs ×1
typescript ×1
xml ×1