Merge branch 'stable-3.4'
* stable-3.4:
Stop propagation for all keys but exempt the save button
Stop propagation for all keys but exempt the save button
Change-Id: Ia8d0a88db7d8d438e2f744f4433f566714d01fcb
diff --git a/.gitignore b/.gitignore
index 0f55ddc..e164b25 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,5 @@
npm-debug.log
dist
fonts
-bower_components
.tmp
-.vscode
\ No newline at end of file
+.vscode
diff --git a/BUILD b/BUILD
index 7e2c5c6..ea55eaf 100644
--- a/BUILD
+++ b/BUILD
@@ -1,5 +1,5 @@
load("//tools/bzl:genrule2.bzl", "genrule2")
-load("//tools/bzl:js.bzl", "bundle_assets", "polygerrit_plugin")
+load("//tools/bzl:js.bzl", "polygerrit_plugin")
load("//tools/bzl:plugin.bzl", "gerrit_plugin")
gerrit_plugin(
@@ -28,16 +28,35 @@
]),
)
-bundle_assets(
+genrule(
name = "codemirror-element",
srcs = [
"gr-editor/codemirror-element.css",
"gr-editor/codemirror-element.html",
"gr-editor/codemirror-element.js",
+ "@ui_npm//codemirror-minified",
],
- app = "gr-editor/codemirror-element.html",
- split = False,
- deps = ["//lib/js:codemirror-minified"],
+ outs = ["codemirror-element.html"],
+ cmd = " ".join([
+ "p=$$PWD &&",
+ "mkdir $(@D)/destdir &&",
+ "tar -cf - $(SRCS) | tar -C $(@D)/destdir -xf - &&",
+ "cd $(@D)/destdir/plugins/codemirror-editor &&",
+ "ln -s ../../external/ui_npm/node_modules . &&",
+ "cd ../.. &&",
+ "$$p/$(location @tools_npm//polymer-bundler/bin:polymer-bundler)",
+ "--inline-scripts",
+ "--inline-css",
+ "--sourcemaps",
+ "--strip-comments",
+ "--root",
+ "plugins/codemirror-editor",
+ "--out-file",
+ "$$p/$@",
+ "/gr-editor/codemirror-element.html &&",
+ "rm -rf $(@D)/destdir",
+ ]),
+ tools = ["@tools_npm//polymer-bundler/bin:polymer-bundler"],
)
polygerrit_plugin(
diff --git a/bower.json b/bower.json
deleted file mode 100644
index f932829..0000000
--- a/bower.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name": "codemirror-editor",
- "authors": [
- "kaspern@google.com"
- ],
- "license": "http://www.apache.org/licenses/LICENSE-2.0",
- "dependencies": {
- "codemirror-minified": "^5.59.1"
- },
- "devDependencies": {
- "es6-promise": "^3.3.1",
- "chai": "^4.2.0",
- "mocha": "^6.2.2",
- "web-component-tester": "^6.5.1"
- },
- "private": true,
- "resolutions": {
- "chai": "^3.2.0",
- "mocha": "^3.1.2"
- }
-}
diff --git a/gr-editor/codemirror-element.css b/gr-editor/codemirror-element.css
index 0a328b7..97787c7 100644
--- a/gr-editor/codemirror-element.css
+++ b/gr-editor/codemirror-element.css
@@ -4,7 +4,6 @@
}
.CodeMirror {
font-family: 'Roboto Mono', 'SF Mono', 'Lucida Console', Monaco, monospace;
- height: auto;
/* CodeMirror has a default z-index of 4. Set to 0 to avoid collisions with fixed header. */
z-index: 0;
}
diff --git a/gr-editor/codemirror-element.html b/gr-editor/codemirror-element.html
index 87a28b9..54aacd8 100644
--- a/gr-editor/codemirror-element.html
+++ b/gr-editor/codemirror-element.html
@@ -18,26 +18,29 @@
<dom-module id="codemirror-element">
<template>
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/lib/codemirror.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/ambiance.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/ambiance-mobile.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/blackboard.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/cobalt.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/eclipse.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/elegant.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/erlang-dark.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/lesser-dark.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/midnight.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/monokai.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/neat.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/night.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/rubyblue.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/solarized.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/twilight.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/vibrant-ink.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/xq-dark.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/theme/xq-light.css">
- <link rel="stylesheet" type="css" href="../bower_components/codemirror-minified/addon/fold/foldgutter.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/lib/codemirror.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/ambiance.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/ambiance-mobile.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/blackboard.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/cobalt.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/eclipse.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/elegant.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/erlang-dark.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/lesser-dark.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/midnight.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/monokai.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/neat.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/night.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/rubyblue.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/solarized.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/twilight.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/vibrant-ink.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/xq-dark.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/theme/xq-light.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/addon/dialog/dialog.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/addon/fold/foldgutter.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/addon/scroll/simplescrollbars.css">
+ <link rel="stylesheet" type="css" href="../node_modules/codemirror-minified/addon/search/matchesonscrollbar.css">
<link rel="stylesheet" type="css" href="./codemirror-element.css" />
<div id="wrapper"></div>
@@ -45,61 +48,69 @@
<script src="./codemirror-element.js"></script>
</dom-module>
-<script src="../bower_components/codemirror-minified/lib/codemirror.js"></script>
-<script src="../bower_components/codemirror-minified/addon/display/rulers.js"></script>
-<script src="../bower_components/codemirror-minified/addon/edit/closebrackets.js"></script>
-<script src="../bower_components/codemirror-minified/addon/edit/closetag.js"></script>
-<script src="../bower_components/codemirror-minified/addon/edit/matchbrackets.js"></script>
-<script src="../bower_components/codemirror-minified/addon/edit/matchtags.js"></script>
-<script src="../bower_components/codemirror-minified/addon/edit/trailingspace.js"></script>
-<script src="../bower_components/codemirror-minified/addon/mode/simple.js"></script>
-<script src="../bower_components/codemirror-minified/addon/mode/multiplex.js"></script>
-<script src="../bower_components/codemirror-minified/mode/meta.js"></script>
-<script src="../bower_components/codemirror-minified/mode/clike/clike.js"></script>
-<script src="../bower_components/codemirror-minified/mode/clojure/clojure.js"></script>
-<script src="../bower_components/codemirror-minified/mode/coffeescript/coffeescript.js"></script>
-<script src="../bower_components/codemirror-minified/mode/commonlisp/commonlisp.js"></script>
-<script src="../bower_components/codemirror-minified/mode/css/css.js"></script>
-<script src="../bower_components/codemirror-minified/mode/d/d.js"></script>
-<script src="../bower_components/codemirror-minified/mode/dart/dart.js"></script>
-<script src="../bower_components/codemirror-minified/mode/diff/diff.js"></script>
-<script src="../bower_components/codemirror-minified/mode/django/django.js"></script>
-<script src="../bower_components/codemirror-minified/mode/dockerfile/dockerfile.js"></script>
-<script src="../bower_components/codemirror-minified/mode/erlang/erlang.js"></script>
-<script src="../bower_components/codemirror-minified/mode/go/go.js"></script>
-<script src="../bower_components/codemirror-minified/mode/groovy/groovy.js"></script>
-<script src="../bower_components/codemirror-minified/mode/haml/haml.js"></script>
-<script src="../bower_components/codemirror-minified/mode/handlebars/handlebars.js"></script>
-<script src="../bower_components/codemirror-minified/mode/haskell/haskell.js"></script>
-<script src="../bower_components/codemirror-minified/mode/htmlembedded/htmlembedded.js"></script>
-<script src="../bower_components/codemirror-minified/mode/htmlmixed/htmlmixed.js"></script>
-<script src="../bower_components/codemirror-minified/mode/javascript/javascript.js"></script>
-<script src="../bower_components/codemirror-minified/mode/jinja2/jinja2.js"></script>
-<script src="../bower_components/codemirror-minified/mode/jsx/jsx.js"></script>
-<script src="../bower_components/codemirror-minified/mode/julia/julia.js"></script>
-<script src="../bower_components/codemirror-minified/mode/lua/lua.js"></script>
-<script src="../bower_components/codemirror-minified/mode/markdown/markdown.js"></script>
-<script src="../bower_components/codemirror-minified/mode/mllike/mllike.js"></script>
-<script src="../bower_components/codemirror-minified/mode/nginx/nginx.js"></script>
-<script src="../bower_components/codemirror-minified/mode/perl/perl.js"></script>
-<script src="../bower_components/codemirror-minified/mode/php/php.js"></script>
-<script src="../bower_components/codemirror-minified/mode/powershell/powershell.js"></script>
-<script src="../bower_components/codemirror-minified/mode/properties/properties.js"></script>
-<script src="../bower_components/codemirror-minified/mode/protobuf/protobuf.js"></script>
-<script src="../bower_components/codemirror-minified/mode/puppet/puppet.js"></script>
-<script src="../bower_components/codemirror-minified/mode/python/python.js"></script>
-<script src="../bower_components/codemirror-minified/mode/rpm/rpm.js"></script>
-<script src="../bower_components/codemirror-minified/mode/ruby/ruby.js"></script>
-<script src="../bower_components/codemirror-minified/mode/sass/sass.js"></script>
-<script src="../bower_components/codemirror-minified/mode/scheme/scheme.js"></script>
-<script src="../bower_components/codemirror-minified/mode/shell/shell.js"></script>
-<script src="../bower_components/codemirror-minified/mode/soy/soy.js"></script>
-<script src="../bower_components/codemirror-minified/mode/sparql/sparql.js"></script>
-<script src="../bower_components/codemirror-minified/mode/sql/sql.js"></script>
-<script src="../bower_components/codemirror-minified/mode/swift/swift.js"></script>
-<script src="../bower_components/codemirror-minified/mode/tcl/tcl.js"></script>
-<script src="../bower_components/codemirror-minified/mode/velocity/velocity.js"></script>
-<script src="../bower_components/codemirror-minified/mode/verilog/verilog.js"></script>
-<script src="../bower_components/codemirror-minified/mode/vb/vb.js"></script>
-<script src="../bower_components/codemirror-minified/mode/xml/xml.js"></script>
-<script src="../bower_components/codemirror-minified/mode/yaml/yaml.js"></script>
+<script src="../node_modules/codemirror-minified/lib/codemirror.js"></script>
+<script src="../node_modules/codemirror-minified/addon/dialog/dialog.js"></script>
+<script src="../node_modules/codemirror-minified/addon/display/rulers.js"></script>
+<script src="../node_modules/codemirror-minified/addon/edit/closebrackets.js"></script>
+<script src="../node_modules/codemirror-minified/addon/edit/closetag.js"></script>
+<script src="../node_modules/codemirror-minified/addon/edit/matchbrackets.js"></script>
+<script src="../node_modules/codemirror-minified/addon/edit/matchtags.js"></script>
+<script src="../node_modules/codemirror-minified/addon/edit/trailingspace.js"></script>
+<script src="../node_modules/codemirror-minified/addon/scroll/annotatescrollbar.js"></script>
+<script src="../node_modules/codemirror-minified/addon/scroll/simplescrollbars.js"></script>
+<script src="../node_modules/codemirror-minified/addon/search/matchesonscrollbar.js"></script>
+<script src="../node_modules/codemirror-minified/addon/search/jump-to-line.js"></script>
+<script src="../node_modules/codemirror-minified/addon/search/matchesonscrollbar.js"></script>
+<script src="../node_modules/codemirror-minified/addon/search/searchcursor.js"></script>
+<script src="../node_modules/codemirror-minified/addon/search/search.js"></script>
+<script src="../node_modules/codemirror-minified/addon/mode/simple.js"></script>
+<script src="../node_modules/codemirror-minified/addon/mode/multiplex.js"></script>
+<script src="../node_modules/codemirror-minified/mode/meta.js"></script>
+<script src="../node_modules/codemirror-minified/mode/clike/clike.js"></script>
+<script src="../node_modules/codemirror-minified/mode/clojure/clojure.js"></script>
+<script src="../node_modules/codemirror-minified/mode/coffeescript/coffeescript.js"></script>
+<script src="../node_modules/codemirror-minified/mode/commonlisp/commonlisp.js"></script>
+<script src="../node_modules/codemirror-minified/mode/css/css.js"></script>
+<script src="../node_modules/codemirror-minified/mode/d/d.js"></script>
+<script src="../node_modules/codemirror-minified/mode/dart/dart.js"></script>
+<script src="../node_modules/codemirror-minified/mode/diff/diff.js"></script>
+<script src="../node_modules/codemirror-minified/mode/django/django.js"></script>
+<script src="../node_modules/codemirror-minified/mode/dockerfile/dockerfile.js"></script>
+<script src="../node_modules/codemirror-minified/mode/erlang/erlang.js"></script>
+<script src="../node_modules/codemirror-minified/mode/go/go.js"></script>
+<script src="../node_modules/codemirror-minified/mode/groovy/groovy.js"></script>
+<script src="../node_modules/codemirror-minified/mode/haml/haml.js"></script>
+<script src="../node_modules/codemirror-minified/mode/handlebars/handlebars.js"></script>
+<script src="../node_modules/codemirror-minified/mode/haskell/haskell.js"></script>
+<script src="../node_modules/codemirror-minified/mode/htmlembedded/htmlembedded.js"></script>
+<script src="../node_modules/codemirror-minified/mode/htmlmixed/htmlmixed.js"></script>
+<script src="../node_modules/codemirror-minified/mode/javascript/javascript.js"></script>
+<script src="../node_modules/codemirror-minified/mode/jinja2/jinja2.js"></script>
+<script src="../node_modules/codemirror-minified/mode/jsx/jsx.js"></script>
+<script src="../node_modules/codemirror-minified/mode/julia/julia.js"></script>
+<script src="../node_modules/codemirror-minified/mode/lua/lua.js"></script>
+<script src="../node_modules/codemirror-minified/mode/markdown/markdown.js"></script>
+<script src="../node_modules/codemirror-minified/mode/mllike/mllike.js"></script>
+<script src="../node_modules/codemirror-minified/mode/nginx/nginx.js"></script>
+<script src="../node_modules/codemirror-minified/mode/perl/perl.js"></script>
+<script src="../node_modules/codemirror-minified/mode/php/php.js"></script>
+<script src="../node_modules/codemirror-minified/mode/powershell/powershell.js"></script>
+<script src="../node_modules/codemirror-minified/mode/properties/properties.js"></script>
+<script src="../node_modules/codemirror-minified/mode/protobuf/protobuf.js"></script>
+<script src="../node_modules/codemirror-minified/mode/puppet/puppet.js"></script>
+<script src="../node_modules/codemirror-minified/mode/python/python.js"></script>
+<script src="../node_modules/codemirror-minified/mode/rpm/rpm.js"></script>
+<script src="../node_modules/codemirror-minified/mode/ruby/ruby.js"></script>
+<script src="../node_modules/codemirror-minified/mode/sass/sass.js"></script>
+<script src="../node_modules/codemirror-minified/mode/scheme/scheme.js"></script>
+<script src="../node_modules/codemirror-minified/mode/shell/shell.js"></script>
+<script src="../node_modules/codemirror-minified/mode/soy/soy.js"></script>
+<script src="../node_modules/codemirror-minified/mode/sparql/sparql.js"></script>
+<script src="../node_modules/codemirror-minified/mode/sql/sql.js"></script>
+<script src="../node_modules/codemirror-minified/mode/swift/swift.js"></script>
+<script src="../node_modules/codemirror-minified/mode/tcl/tcl.js"></script>
+<script src="../node_modules/codemirror-minified/mode/velocity/velocity.js"></script>
+<script src="../node_modules/codemirror-minified/mode/verilog/verilog.js"></script>
+<script src="../node_modules/codemirror-minified/mode/vb/vb.js"></script>
+<script src="../node_modules/codemirror-minified/mode/xml/xml.js"></script>
+<script src="../node_modules/codemirror-minified/mode/yaml/yaml.js"></script>
diff --git a/gr-editor/codemirror-element.js b/gr-editor/codemirror-element.js
index c49d6a1..94ee213 100644
--- a/gr-editor/codemirror-element.js
+++ b/gr-editor/codemirror-element.js
@@ -62,9 +62,10 @@
this.scopeSubtree(this.$.wrapper, true);
// eslint-disable-next-line new-cap
this._nativeMirror = window.CodeMirror(this.$.wrapper, this._params);
- this.async(() => {
+ setTimeout(() => {
this._nativeMirror.refresh();
this._nativeMirror.focus();
+ this._nativeMirror.setSize(null, window.screen.height);
if (this.lineNum) {
// We have to take away one from the line number,
// ... because CodeMirror's line count is zero-based.
diff --git a/gr-editor/gr-editor.js b/gr-editor/gr-editor.js
index c88e2a8..1052df5 100644
--- a/gr-editor/gr-editor.js
+++ b/gr-editor/gr-editor.js
@@ -95,12 +95,6 @@
return link;
}
-// we need to be on codemirror 5.33.0+ to get the support for
-// text/x-php in CodeMirror.findModeByMIME
-const LANGUAGE_MAP = {
- 'text/x-php': 'php',
-};
-
class GrEditor extends Polymer.Element {
/**
* Fired when the content of the editor changes.
@@ -193,7 +187,9 @@
* @returns {Object}
*/
getCodeMirrorParams(type, value, prefs) {
- const params = {value, viewportMargin: Infinity};
+ const params = {value};
+
+ params.scrollbarStyle = 'overlay';
if (prefs) {
// TODO: Add gerrit's customizations from java codemirror to javascript
@@ -233,7 +229,7 @@
* @returns {string}
*/
_mapFileType(type) {
- return LANGUAGE_MAP[type] || type || '';
+ return type || '';
}
}
diff --git a/package-lock.json b/package-lock.json
index f7f5734..36929d6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -163,12 +163,6 @@
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
- "bower": {
- "version": "1.8.8",
- "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.8.tgz",
- "integrity": "sha512-1SrJnXnkP9soITHptSO+ahx3QKp3cVzn8poI6ujqc5SeOkg5iqM1pK9H+DSc2OQ8SnO0jC/NG4Ur/UIwy7574A==",
- "dev": true
- },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
diff --git a/package.json b/package.json
index e298b9c..9823436 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,6 @@
"@polymer/iron-test-helpers": "^3.0.1",
"@webcomponents/shadycss": "^1.9.2",
"@webcomponents/webcomponentsjs": "^1.3.3",
- "bower": "^1.8.8",
"es6-promise": "^3.3.1",
"eslint": "^6.6.0",
"eslint-config-google": "^0.13.0",