diff --git a/src/client/languageParticipants.ts b/src/client/languageParticipants.ts
index 226e0c68..310d6e8d 100644
--- a/src/client/languageParticipants.ts
+++ b/src/client/languageParticipants.ts
@@ -6,6 +6,16 @@
 import { Event, EventEmitter, extensions } from 'vscode';
 import { DocumentFilter, DocumentSelector } from 'vscode-languageclient';
 
+const SCHEMES: string[] = [
+  'untitled',
+  'file',
+  'ftp',
+  'http',
+  'https',
+  'ssh',
+  'streamfile',
+];
+
 /**
  * XML language participant contribution.
  */
@@ -59,7 +69,16 @@ export function getLanguageParticipants(): LanguageParticipants {
 
   return {
     onDidChange: onDidChangeEmmiter.event,
-    get documentSelector() { return Array.from(languages); },
+    get documentSelector() {
+      return SCHEMES.flatMap(scheme => {
+        return Array.from(languages).map(language => {
+          return {
+            language,
+            scheme
+          } as DocumentFilter;
+        });
+      });
+    },
     hasLanguage(languageId: string) { return languages.has(languageId); },
     dispose: () => changeListener.dispose()
   };