我在浏览器文本编辑器中使用 Ace。
editor.on("mousemove", function (e)
{
// use clientX clientY to get row and column locations
});
Run Code Online (Sandbox Code Playgroud)
从 clientX clientY 坐标,我需要编辑器上的实际行号和列号。
查看 Ace api 但找不到任何相关内容。
你知道我有什么办法可以做到这一点吗?
谢谢
我一直在研究使用Cloud9提供的Ace浏览器代码编辑器的MVC Web应用程序.ace.js脚本和设置ace编辑器的脚本都在我的BundleConfig上的ScriptBundle中.捆绑正在装载完美.在我的本地服务器上,在web.config中将debug设置为true,脚本运行得非常好.但是,在web.config中启动调试设置为false的实时服务器后,出现了几个错误.
在修复了一些小故障之后,还有两个错误,我似乎无法理解其中的原因.这两个错误看起来非常相似,因为它们是Ace的chrome主题和Ace的HTML模式脚本都没有找到404错误.在设置编辑器的脚本中,它们的调用方式如下:
editor.setTheme("ace/theme/chrome");
editor.getSession().setMode("ace/mode/html");
Run Code Online (Sandbox Code Playgroud)
在我的本地计算机上,将调试设置为true,主题和模式设置得非常好,一切都按计划运行.但是,正如我所说,在调试设置为false的实时服务器上,因此缩小了ScriptBundles中的所有脚本,我得到了主题和模式的404错误.
当我在谷歌浏览器中启动JavaScript控制台时,我被告知有两个404错误.有关404错误的有趣之处在于它们链接到我正在查看的页面的当前目录,然后分别是"theme-chrome.js"和"mode-html.js".他们从来没有在那个目录中,但仍然没有.
所以我的问题是为什么脚本在缩小后开始在当前目录中查找其文件?我该怎么做才能解决这个问题,以便我可以将它们缩小,捆绑在一起,让它们工作?或者有办法吗?
提前感谢您的帮助.
我刚刚使用最新的angular-cli 工具创建了一个angular2项目.我现在想要使用ng2-ace库来启动和运行ace编辑器.我想使用SystemJS作为模块加载器以干净的方式进行.
我做到了
npm install --save ng2-ace
Run Code Online (Sandbox Code Playgroud)
然后我将以下两行添加angular-cli-builds.js到vendorNpmFiles数组中
'ng2-ace/index.js',
'brace/**/*.js
Run Code Online (Sandbox Code Playgroud)
然后我添加了以下内容 system-config.ts
const map: any = {
'ng2-ace': 'vendor/ng2-ace',
'brace': 'vendor/brace'
};
/** User packages configuration. */
const packages: any = {
'brace': {
format: 'cjs',
defaultExtension: 'js',
main: 'index.js'
},
'ng2-ace': {
format: 'cjs',
defaultExtension: 'js',
main: 'index.js'
}
};
Run Code Online (Sandbox Code Playgroud)
现在我尝试从组件导入指令
import { AceEditorDirective } from 'ng2-ace';
Run Code Online (Sandbox Code Playgroud)
这使编译器ng serve中止以下错误:
The Broccoli Plugin: [BroccoliTypeScriptCompiler] failed with:
Error: Typescript found the following …Run Code Online (Sandbox Code Playgroud) 我正在使用Ace编辑器.在Javascript中,(不是jQuery),我如何返回当前光标的行和列位置?
如何在 webpack 中使用 ACE 编辑器?ACE 编辑器可以动态加载语法高亮或代码片段等扩展。但是,webpack 尝试静态加载脚本。
当我使用命令时,我有一个像这张图片一样的错误 ng serve --prod

当我在本地运行它时,npm start它运行良好!
在生产中运行时,它说“未定义王牌”?
代码表.component.html
<div class="codeEditor" ace-editor [(text)]="text" [mode]="languageMode" [theme]="editorTheme" [options]="options" [readOnly]="false"
[autoUpdateContent]="true" [durationBeforeCallback]="1000" (textChanged)="codeChange($event)"></div>
Run Code Online (Sandbox Code Playgroud)
代码表.component.ts
import { Component, OnInit, ViewChild } from '@angular/core';
// import { AceEditorDirective } from 'ng2-ace';
// import { AceEditorDirective } from 'ng2-ace-editor';
import 'brace/theme/cobalt';
import 'brace/mode/c_cpp';
import 'brace/mode/java';
import 'brace/mode/python';
import 'brace/mode/ruby';
import { CompilerService } from '../compiler.service';
@Component({
selector: 'app-code-table',
templateUrl: './code-table.component.html',
styleUrls: ['./code-table.component.css']
})
export class CodeTableComponent implements OnInit {
text: string = "";
loading: boolean …Run Code Online (Sandbox Code Playgroud) 我在我的 React 应用程序中使用 ace Editor 并收到上述错误。我想通过提交按钮触发的函数调用将我在 React 应用程序中使用的 Ace Editor IDE 的内容放入其中。
<AceEditor
ref='aceEditor'
height='100%'
width='100%'
mode={ideLanguage}
theme={ideTheme}
fontSize={ideFontSize}
showGutter={true}
showPrintMargin={false}/>
Run Code Online (Sandbox Code Playgroud)
这是按钮
<Button
type='button'
buttonStyle='btn--primary--normal'
buttonSize='btn--medium'
onClick={SendCode}
>SUBMIT</Button>
Run Code Online (Sandbox Code Playgroud)
这就是函数
const SendCode = () => {
console.log(this.refs.aceEditor.editor.getValue());
};
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么??
我试图在Ace编辑器中将部分代码设置为只读.
$(function() {
var editor = ace.edit("editor1")
, session = editor.getSession()
, Range = require("ace/range").Range
, range = new Range(1, 4, 1, 10)
, markerId = session.addMarker(range, "readonly-highlight");
session.setMode("ace/mode/javascript");
editor.keyBinding.addKeyboardHandler({
handleKeyboard : function(data, hash, keyString, keyCode, event) {
if (hash === -1 || (keyCode <= 40 && keyCode >= 37)) return false;
if (intersects(range)) {
return {command:"null", passEvent:false};
}
}
});
before(editor, 'onPaste', preventReadonly);
before(editor, 'onCut', preventReadonly);
range.start = session.doc.createAnchor(range.start);
range.end = session.doc.createAnchor(range.end);
range.end.$insertRight = true; …Run Code Online (Sandbox Code Playgroud) 我很擅长使用Ace Editor.我正在尝试使用该库开发一个小工具,我希望能够在编辑器中添加超链接.
到目前为止,我已经能够使用超链接替换纯文本:
editor.renderer.on('afterRender', function(){
// replace specific text with hyperlinks
});
Run Code Online (Sandbox Code Playgroud)
唯一的问题是链接不可点击.我想知道是否有任何方式让他们可以点击以获得我想要的行为.
先感谢您.
我使用http://ace.c9.io/tool/mode_creator.html创建了一个模式
将其构建为现有 ace 版本的可用文件的过程是什么?看来我可能必须通过某种构建步骤传递该代码才能获得输出,例如https://github.com/ajaxorg/ace-builds/blob/master/src/mode-golang.js ...
ace-editor ×9
javascript ×8
angular ×2
cursor ×2
angularjs ×1
asp.net-mvc ×1
bundle ×1
c# ×1
components ×1
editor ×1
frontend ×1
jquery ×1
module ×1
mouse ×1
reactjs ×1
systemjs ×1
webpack ×1