123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>ACE Code Lens demo</title>
- <style type="text/css" media="screen">
- body {
- overflow: hidden;
- }
- #editor {
- margin: 0;
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- }
- </style>
- </head>
- <body>
- <pre id="editor"></pre>
- <!-- load ace -->
- <script src="../src/ace.js"></script>
- <!-- load ace code_lens extension -->
- <script src="../src/ext-code_lens.js"></script>
- <script>
- var editor = ace.edit("editor");
- editor.session.setMode("ace/mode/html");
- var commandId = "describeCodeLens";
- editor.commands.addCommand({
- name: commandId,
- exec: function(editor, args) {
- // services available in `ctx`
- alert('CodeLens command called with arguments ' + args);
- }
- });
- editor.commands.addCommand({
- name: "clearCodeLenses",
- exec: function(editor, args) {
- editor.setOption("enableCodeLens", false);
- codeLens.clear(editor.session);
- }
- });
- editor.setOption("enableCodeLens", true);
- codeLens.registerCodeLensProvider(editor, {
- provideCodeLenses: function(session, callback) {
- var p = [{
- start: {row: 0},
- command: {
- id: "clearCodeLenses",
- title: "Clear all code lenses",
- arguments: []
- }
- }];
- var l = session.getLength()
- for (var row = 2; row < l; row ++) {
- var line = session.getLine(row);
- var endColumn = line.length;
- var m = /[{>]\s*$/.exec(line);
- if (!m) continue;
- p.push({
- start: {
- row: row,
- column: m.index,
- },
- command: {
- id: commandId,
- title: "Line " + (row + 1),
- arguments: ["line", row]
- }
- });
- if (m.index < 10) continue;
- p.push({
- start: {
- row: row,
- column: m.index,
- },
- end: {
- row: row,
- column: m.index + 1,
- },
- command: {
- id: commandId,
- title: "column " + endColumn,
- arguments: ["column", endColumn]
- }
- });
- if (m.index < 30) continue;
- p.push({
- start: {
- row: row,
- column: m.index,
- },
- command: {
- id: commandId,
- title: "Third Link",
- arguments: ["3", row]
- }
- });
- }
- callback(p);
- }
- });
- window.editor = editor;
- window.codeLens = codeLens;
- </script>
- <script src="./show_own_source.js"></script>
- </body>
- </html>
|