Преглед изворни кода

[web] Add autocomplete to LaTeX language for CodeMirror 6 (#5780)

GitOrigin-RevId: 90f1f3b680a68f8eb14828c9e5db94587974a6d4
Alf Eaton пре 4 година
родитељ
комит
dd733fda84

+ 7 - 1
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) {
   metadata.onBroadcastDocMeta = function (data) {
     if (data.docId != null && data.meta != null) {
     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]
               const docMeta = data.projectMeta[docId]
               result.push((state.documents[docId] = docMeta))
               result.push((state.documents[docId] = docMeta))
             }
             }
+            window.dispatchEvent(
+              new CustomEvent('project:metadata', { detail: state.documents })
+            )
             return result
             return result
           })()
           })()
         }
         }

+ 7 - 1
services/web/frontend/js/ide/references/ReferencesManager.js

@@ -61,7 +61,13 @@ export default ReferencesManager = class ReferencesManager {
   _storeReferencesKeys(newKeys) {
   _storeReferencesKeys(newKeys) {
     // console.log '>> storing references keys'
     // console.log '>> storing references keys'
     const oldKeys = this.$scope.$root._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) {
   indexReferencesIfDocModified(doc, shouldBroadcast) {

+ 3 - 3
services/web/package-lock.json

@@ -4885,9 +4885,9 @@
       }
       }
     },
     },
     "@codemirror/autocomplete": {
     "@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": {
       "requires": {
         "@codemirror/language": "^0.19.0",
         "@codemirror/language": "^0.19.0",
         "@codemirror/state": "^0.19.4",
         "@codemirror/state": "^0.19.4",

+ 1 - 1
services/web/package.json

@@ -47,7 +47,7 @@
     "@babel/core": "^7.14.5",
     "@babel/core": "^7.14.5",
     "@babel/preset-env": "^7.14.5",
     "@babel/preset-env": "^7.14.5",
     "@babel/preset-react": "^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/closebrackets": "^0.19.0",
     "@codemirror/commands": "^0.19.5",
     "@codemirror/commands": "^0.19.5",
     "@codemirror/comment": "^0.19.0",
     "@codemirror/comment": "^0.19.0",

+ 9 - 0
services/web/test/frontend/helpers/render-with-context.js

@@ -77,12 +77,21 @@ export function EditorProviders({
     openDoc: sinon.stub(),
     openDoc: sinon.stub(),
   }
   }
 
 
+  const metadataManager = {
+    metadata: {
+      state: {
+        documents: {},
+      },
+    },
+  }
+
   window._ide = {
   window._ide = {
     $scope,
     $scope,
     socket,
     socket,
     clsiServerId,
     clsiServerId,
     editorManager,
     editorManager,
     fileTreeManager,
     fileTreeManager,
+    metadataManager,
   }
   }
 
 
   return (
   return (