我正在寻找在摩纳哥差异编辑器中编辑左右两侧代码的可能性。
我已经尝试过这个:
var originalModel = monaco.editor.createModel("heLLo world!", "text/plain");
var modifiedModel = monaco.editor.createModel("hello orlando!", "text/plain");
var diffEditor = monaco.editor.createDiffEditor(
document.getElementById("container"),
{ readOnly: false }
);
diffEditor.setModel({
original: originalModel,
modified: modifiedModel
});
Run Code Online (Sandbox Code Playgroud)
但该(只读)选项仅影响右侧,默认情况下是可编辑的。
这是一个演示链接: create-the-diffeditor-hello-diff-world
我尝试将摩纳哥代码编辑器集成到我的 ember 辛烷应用程序中。目前我正在使用 ESM 导入样式并确认手册,我安装了 webpack 加载器插件并将其集成到我的 ember-cli-build.js 中
const EmberApp = require('ember-cli/lib/broccoli/ember-app');
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
module.exports = function(defaults) {
let app = new EmberApp(defaults, {
autoImport: {
webpack: {
plugins: [
new MonacoWebpackPlugin()
]
}
}
});
// Use `app.import` to add additional libraries to the generated
// output files.
//
// If you need to use different assets in different
// environments, specify an object as the first parameter. That
// object's keys should be …Run Code Online (Sandbox Code Playgroud) 这是我定义的摩纳哥语言,它不会自动关闭括号:在初始化语言时传递的参数中,自动关闭括号是“true”。我也尝试过自动关闭括号=“always”,但它不起作用
monaco.languages.setMonarchTokensProvider('CustomExpressionLanguage', {
brackets: [
{ open: '{', close: '}', token: 'delimiter.curly' },
{ open: '[', close: ']', token: 'delimiter.square' },
{ open: '(', close: ')', token: 'delimiter.parenthesis' },
{ open: '<', close: '>', token: 'delimiter.angle' }
],
surroundingPairs: [
{ open: '{', close: '}' },
{ open: '[', close: ']' },
{ open: '(', close: ')' },
{ open: '<', close: '>' },
{ open: '\'', close: '\'' },
{ open: '"', close: '"' },
],
autoClosingPairs: [
{ …Run Code Online (Sandbox Code Playgroud) 我正在使用react-monaco-editor,但我无法使其响应。它在组件中采用固定的高度和宽度。如果我改变屏幕尺寸,宽度保持不变。
<MonacoEditor
width="1200"
height="600"
language="typescript"
theme="vs-dark"
defaultValue="//type your code here"
value={code}
options={options}
onChange={this.onChange}
editorDidMount={this.editorDidMount}
className='editor1'
/>
Run Code Online (Sandbox Code Playgroud)
如果我删除组件的宽度和高度,组件就会减小。我尝试用 flex 覆盖组件 className。但似乎效果不太好。
.react-monaco-editor-container {
flex: 2;
}
Run Code Online (Sandbox Code Playgroud)
你能帮助我使用 CSS 使其响应式吗?
我有这个代码: https: //controlc.com/42eca8b5
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:MonacoBrowser"
xmlns:Wpf="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf" x:Class="MonacoBrowser.MainWindow"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Wpf:WebView2 x:Name="MonacoBr"/>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
我也尝试在cefsharp上加载摩纳哥,但那里也没有任何作用,我尝试以各种方式初始化它并尝试运行它,但无济于事
请帮助任何人,我已经尝试解决这个问题几天了......
我正在尝试使用Monaco编辑器将智能感知/代码完成提供到javascript编辑器中.代码需要是有效的javascript,而不是打字稿.
鉴于一些用户输入的脚本如下:
function onMyEvent(event)
{
event.someProperty
}
Run Code Online (Sandbox Code Playgroud)
我想在event参数上提供代码完成,这是一个我有t.ds的typescript类,并且可以在运行时推断.
理想情况下,我只想告诉摩纳哥这种类型event是什么SomeEventClass,让它做其余的事情.即使这意味着向脚本添加类型提示.但我看不出怎么做.我尝试在用户脚本中使用JSDoc语法和各种组合,但看起来像阻止了FTB看到:https:
//github.com/Microsoft/monaco-editor/issues/203
并
为VSCode/Monaco Intellisence添加JavaScript类型提示
我也试过注入动态d.ts,按照 https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-configure-javascript-defaults
但声明该功能似乎对编辑没有任何意义.声明一个新类肯定有效,我只是无法弄清楚如何告诉摩纳哥event该函数是一个特定的类型.
我可以看到registerCompletionItemProvider API,但是它没有给出任何声明项目声明等的上下文,也不允许我自动使用我想要的d.ts文件.
摩纳哥编辑中是否有一个文本选择活动?我需要回应用户在编辑器中选择部分代码?
是否有更好的解决方案使用计时器来获取选择范围?
文件似乎没有提及它.
我有兴趣在Vue.js支持的Electron项目中使用Monaco编辑器.
微软提供了一个电子样本(我已经运行并正常工作)
摩纳哥有各种各样的vue.js npm回购 - 但它们似乎都没有完全支持Electron开箱即用.
看起来最有希望的是vue-monaco,但我遇到了正确整合它的问题.
这是Microsoft示例中与Electron一起使用的代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Monaco Editor!</title>
</head>
<body>
<h1>Monaco Editor in Electron!</h1>
<div id="container" style="width:500px;height:300px;border:1px solid #ccc"></div>
</body>
<script>
// Monaco uses a custom amd loader that overrides node's require.
// Keep a reference to node's require so we can restore it after executing the amd loader file.
var nodeRequire = global.require;
</script>
<script src="../node_modules/monaco-editor/min/vs/loader.js"></script> …Run Code Online (Sandbox Code Playgroud) monaco-editor ×10
javascript ×2
amd ×1
c# ×1
css ×1
diff ×1
electron ×1
ember-octane ×1
ember.js ×1
html ×1
ide ×1
reactjs ×1
typescript ×1
vue.js ×1
webpack ×1
webview2 ×1
wpf ×1