From dd733fda8439e8ec5a9e37c9688ff7b18d02bca6 Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Tue, 16 Nov 2021 10:27:24 +0000 Subject: [PATCH] [web] Add autocomplete to LaTeX language for CodeMirror 6 (#5780) GitOrigin-RevId: 90f1f3b680a68f8eb14828c9e5db94587974a6d4 --- .../web/frontend/js/ide/metadata/services/metadata.js | 8 +++++++- .../web/frontend/js/ide/references/ReferencesManager.js | 8 +++++++- services/web/package-lock.json | 6 +++--- services/web/package.json | 2 +- .../web/test/frontend/helpers/render-with-context.js | 9 +++++++++ 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/services/web/frontend/js/ide/metadata/services/metadata.js b/services/web/frontend/js/ide/metadata/services/metadata.js index 279109518f..44a6e1e159 100644 --- a/services/web/frontend/js/ide/metadata/services/metadata.js +++ b/services/web/frontend/js/ide/metadata/services/metadata.js @@ -22,7 +22,10 @@ export default App.factory('metadata', function ($http, ide) { metadata.onBroadcastDocMeta = function (data) { if (data.docId != null && data.meta != null) { - return (state.documents[data.docId] = data.meta) + state.documents[data.docId] = data.meta + window.dispatchEvent( + new CustomEvent('project:metadata', { detail: state.documents }) + ) } } @@ -74,6 +77,9 @@ export default App.factory('metadata', function ($http, ide) { const docMeta = data.projectMeta[docId] result.push((state.documents[docId] = docMeta)) } + window.dispatchEvent( + new CustomEvent('project:metadata', { detail: state.documents }) + ) return result })() } diff --git a/services/web/frontend/js/ide/references/ReferencesManager.js b/services/web/frontend/js/ide/references/ReferencesManager.js index c7fa8fd0c3..d7f7a708aa 100644 --- a/services/web/frontend/js/ide/references/ReferencesManager.js +++ b/services/web/frontend/js/ide/references/ReferencesManager.js @@ -61,7 +61,13 @@ export default ReferencesManager = class ReferencesManager { _storeReferencesKeys(newKeys) { // console.log '>> storing references keys' const oldKeys = this.$scope.$root._references.keys - return (this.$scope.$root._references.keys = _.union(oldKeys, newKeys)) + const keys = _.union(oldKeys, newKeys) + window.dispatchEvent( + new CustomEvent('project:references', { + detail: keys, + }) + ) + return (this.$scope.$root._references.keys = keys) } indexReferencesIfDocModified(doc, shouldBroadcast) { diff --git a/services/web/package-lock.json b/services/web/package-lock.json index a8b35a2c91..6b9cd88a1d 100644 --- a/services/web/package-lock.json +++ b/services/web/package-lock.json @@ -4885,9 +4885,9 @@ } }, "@codemirror/autocomplete": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-0.19.5.tgz", - "integrity": "sha512-4ZP9hUaGKw5iSeOMwBv3Qa5fZO8puuna7eDwB8jjRPOtxW4X6e2LY8SmsNSp3ZLXsrhUAOt8urNqv1jBp7SxqA==", + "version": "0.19.6", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-0.19.6.tgz", + "integrity": "sha512-hFYpNWq/DHpZTDn51+40YfNXysfX/iUnUzYuXnDVLOYMyxCAC+0vzA6aMHACFp/R2CEpRFfdAsNrQZpFkWVgSg==", "requires": { "@codemirror/language": "^0.19.0", "@codemirror/state": "^0.19.4", diff --git a/services/web/package.json b/services/web/package.json index 7707359ba6..ccc42ed2d9 100644 --- a/services/web/package.json +++ b/services/web/package.json @@ -47,7 +47,7 @@ "@babel/core": "^7.14.5", "@babel/preset-env": "^7.14.5", "@babel/preset-react": "^7.14.5", - "@codemirror/autocomplete": "^0.19.5", + "@codemirror/autocomplete": "^0.19.6", "@codemirror/closebrackets": "^0.19.0", "@codemirror/commands": "^0.19.5", "@codemirror/comment": "^0.19.0", diff --git a/services/web/test/frontend/helpers/render-with-context.js b/services/web/test/frontend/helpers/render-with-context.js index aaac38df0a..a034894aa5 100644 --- a/services/web/test/frontend/helpers/render-with-context.js +++ b/services/web/test/frontend/helpers/render-with-context.js @@ -77,12 +77,21 @@ export function EditorProviders({ openDoc: sinon.stub(), } + const metadataManager = { + metadata: { + state: { + documents: {}, + }, + }, + } + window._ide = { $scope, socket, clsiServerId, editorManager, fileTreeManager, + metadataManager, } return (