标签: monaco-editor

摩纳哥编辑matchBrackets不突出

我正在定义新语言.我希望它会自动突出显示匹配的括号和括号,因为默认matchBrackets选项为true.

我该怎么办?

示例代码: 查看此页面,它在Microsoft的示例代码中也不起作用.

monaco-editor

11
推荐指数
1
解决办法
588
查看次数

如何使用 monaco 编辑器进行语法高亮显示?

我开发了一个基于代码的聊天组件。每个聊天都是一些代码片段。对于用户输入,我使用monaco-editor。它工作正常。

但是一旦用户点击发送按钮,我就会从摩纳哥编辑器获得原始输入。我需要将此用户输入附加到聊天列表并再次突出显示此输入。

有没有办法可以使用摩纳哥编辑器来做到这一点?或者我必须将highlight.js与 Monaco 一起使用吗?

javascript syntax-highlighting monaco-editor

10
推荐指数
2
解决办法
8562
查看次数

网页上是否有带有 omnisharp 的 monaco-editor 示例项目

在我的项目中,我使用 C# Roslyn 脚本来实现一些可以让我的客户单独编写的自动化。我在运行时编译并运行它。

现在我想要一个带有智能感知和拼写检查的 c# 网络编辑器。对于代码完成,我还想通过我的 API 获取一些私有块数据包以提供给脚本。

实际上,我使用 Visual Studio Code 做到了这一点。但是在自托管网页上有相同的行为会很好。

我找到了 Monaco-editor 和 omnisharp 项目。我认为这很好,因为 Visual Studio Code 也使用它。

有谁知道将这些东西组合在一起的示例项目或开源项目?我相信我不是第一个有这个想法的人。

c# omnisharp visual-studio-code monaco-editor

10
推荐指数
1
解决办法
610
查看次数

如何使用简单的 JavaScript 或 jQuery 在浏览器中初始化 Microsoft Monaco 编辑器

我正在尝试使用Microsoft Monaco初始化文本/代码编辑器。我想使用核心 JavaScript甚至 jQuery 但没有 NodeJS 依赖。那可能吗?

一些相关的例子:

获取 Monaco Editor 的价值

jsFiddle 中的示例

我有以下代码,但它不起作用:

    <!DOCTYPE html>
<html>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
</head>
<body>

<div id="container" style="width:800px;height:600px;border:1px solid grey"></div>

<script type="text/javascript" src="https://microsoft.github.io/monaco-editor/node_modules/monaco-editor/min/vs/loader.js"></script>


<script>
require.config({ paths: { 'vs': 'monaco-editor/min/vs' }});
require(['vs/editor/editor.main'], function() {
    window.editor = monaco.editor.create(document.getElementById('container'),                 {
        value: [
            'function x() {',
            '\tconsole.log("Hello world!");',
            '}'
        ].join('\n'),
        language: 'javascript'
    });
});

function save() {
   // get the value of the data …
Run Code Online (Sandbox Code Playgroud)

javascript jquery monaco-editor

10
推荐指数
1
解决办法
6258
查看次数

如何使用 API 在 Monaco Editor 中格式化 JSON 代码?

我正在一个 Web 项目中使用monaco 编辑器(又名VS Code引擎)。

我使用它来允许用户编辑一些具有 JSON 架构集的 JSON,以帮助提供一些自动完成功能。

当他们保存更改并希望重新编辑他们的工作时,我加载回编辑器的 JSON 会转换为字符串,但这会将代码呈现在一行上,我更希望 JSON 更漂亮,就好像用户右键单击并使用上下文菜单或键盘快捷键等中的“设置文档格式”命令。

所以这

{ "enable": true, "description": "Something" }
Run Code Online (Sandbox Code Playgroud)

会变成这样

{
    "enable": true,
    "description:" "Something"
}
Run Code Online (Sandbox Code Playgroud)

目前的尝试

我已经尝试过以下方法,但使用超时来等待/猜测内容何时加载感觉非常hacky

require(['vs/editor/editor.main'], function() {

  // JSON object we want to edit
  const jsonCode = [{
    "enabled": true,
    "description": "something"
  }];

  const modelUri = monaco.Uri.parse("json://grid/settings.json");
  const jsonModel = monaco.editor.createModel(JSON.stringify(jsonCode), "json", modelUri);

  const editor = monaco.editor.create(document.getElementById('container'), {
    model: jsonModel
  });

  // TODO: YUK see if we can remove timeout, as …
Run Code Online (Sandbox Code Playgroud)

javascript json monaco-editor

10
推荐指数
1
解决办法
2万
查看次数

让Monaco Editor填充页面的其余部分(跨浏览器)

我想在一些固定文本下的页面中嵌入一个摩纳哥编辑器,我希望Monaco编辑器的高度完全填充页面的其余部分.人们给了我一个答案在这里:JSBin:

<html>
    <style>
        html, body, .rb {
            margin: 0;
            height: 100%;
        }

        .rb {
            display: table;
            width: 100%;
            border-collapse: collapse;
        }

        .top, .myME {
            display: table-row;
        }

        .buffer {
            display: table-cell;
        }

        .top .buffer {
            background: lightblue;
            height:1%;
        }

        .myME .buffer {
            background: tomato;
        }

        #container {
            position:relative;
        }

        #container > * {
            overflow:auto;
            max-width:100%;
            max-height:100%;
        }
    </style>
    <body>
        <div class="rb">
            <div class="top">
                <div class="buffer">
                1<br/>2<br/>3<br/>4<br/>
                </div>
            </div>
            <div class="myME">
                <div class="buffer" id="container">
                </div>
            </div>
        </div> …
Run Code Online (Sandbox Code Playgroud)

css height cross-browser display monaco-editor

9
推荐指数
1
解决办法
835
查看次数

摩纳哥编辑器设置字体大小

我正在尝试通过对周围的 div 进行样式设置摩纳哥编辑器的字体大小。那种方法行不通。所以我看到摩纳哥编辑器有一个属性 font-size 。所以我尝试了这个属性。不幸的是这对我来说也不起作用。最好的方法是使用 CSS,因为我同时设计了一些东西。

css monaco-editor

9
推荐指数
2
解决办法
1万
查看次数

Monaco Editor registerCompletionItemProvider删除默认的局部变量完成

在Monaco Editor中,使用标准初始化,例如:

monaco.editor.create(document.getElementById("container"), {
    value: "",
    language: "csharp"
});
Run Code Online (Sandbox Code Playgroud)

将有一个开箱即用的局部变量代码完成.例如,使用上面的标准初始化,并键入如下代码:

string testVariable = "This is a string";
int aValue = 123;
Run Code Online (Sandbox Code Playgroud)

代码完成将识别"testVariable"和"aValue"变量,并在代码完成列表中显示它们.

但是,如果我们将registerCompletionItemProvider添加到初始化中,如下所示:

//Custom Code Completion function
function createCompleters() {
    return [
        {
            label: 'customFunction1',
            kind: monaco.languages.CompletionItemKind.Function,
            documentation: "My first Custom Function",
            insertText: 'customFunction1()'
        },
        {
            label: 'customFunction2',
            kind: monaco.languages.CompletionItemKind.Function,
            documentation: "My second Custom Function",
            insertText: 'customFunction2()'
        }
    ];
}
//Register the custom completion function into Monaco Editor    
monaco.languages.registerCompletionItemProvider('csharp', {
    provideCompletionItems: function(model, position) {
        return createCompleters();
    }
});
//Continue with …
Run Code Online (Sandbox Code Playgroud)

monaco-editor

9
推荐指数
1
解决办法
930
查看次数

如何使嵌套的markdown项目符号列表在vscode中具有不同的项目符号样式

我想在markdown中使用子弹点而不是星号(*)字符来创建vscode渲染列表,以便顶级使用•,下一个将使用◦等.

我的第一种方法是使用FontForge创建一个连字字体,用◦替换*,用◦替换空格加*,用▪替换两个空格加*,依此类推,但是使用连字有明显的问题,它不是上下文敏感的,所以所有星号将被替换,而不仅仅是那些领先一行的星号.

查看vscode文本修饰API,它似乎仅限于更改字体样式和颜色,而不是字体系列.有没有办法在视觉上替换vscode中的字符?它们仍应在源代码中保存为星号,以便有效降价.

markdown ligature visual-studio-code vscode-extensions monaco-editor

9
推荐指数
1
解决办法
613
查看次数

有没有办法完全隐藏摩纳哥编辑器的阴沟

是否可以完全隐藏摩纳哥编辑器的排水沟。我尝试了以下选项:

  lineNumbers: 'off',
  glyphMargin: false,
  folding: false
Run Code Online (Sandbox Code Playgroud)

这减少了装订线的大小,但它仍然是大约 10 像素宽,并且在悬停时它会变长。有没有办法完全压制它?

monaco-editor

9
推荐指数
1
解决办法
3067
查看次数