Repository: autozimu/LanguageClient-neovim (language: rust)

Issue:
LanguageClient requires Python3.7
The current version of the LanguageClient requires Python3.7 as of dfdf91743e0246063e16526ef3ead4342a15c886. The reason that `defaults` parameter of `namedtuple` is used, which was only added in Python3.7. This requirement is nowhere stated and rather harsh in my opinion as Python3.7 is still very new.
I am personally using intelpython, where the newest version is only 3.6.5.

Please consider dropping the `defaults` parameter and make it compatible with Python3.5, or at least state the requirement of Python3.7.


Discussion / hints:
@ficoos Can you take a look?

Fix patch:
diff --git a/rplugin/python3/denite/common.py b/rplugin/python3/denite/common.py
index dd1ce76e9..5ca78191c 100644
--- a/rplugin/python3/denite/common.py
+++ b/rplugin/python3/denite/common.py
@@ -13,24 +13,35 @@
 
 MAX_FNAME_LEN = 30
 
-HighlightDefinition = namedtuple("HighlightDefinition", (
+_HighlightDefinition = namedtuple("HighlightDefinition", (
     "name",
     're',
     "contained",
     "contains",
     "nextgroup",
     'link',
-), defaults=(
-    False,  # contained
-    False,  # contains
-    None,   # next group
-    None,   # link
 ))
 
+
+def HighlightDefinition(name,
+                        re,
+                        contained=False,
+                        contains=None,
+                        nextgroup=None,
+                        link=None):
+
+    return _HighlightDefinition(name,
+                                re,
+                                contained,
+                                contains,
+                                nextgroup,
+                                link)
+
+
 SYMBOL_CANDIDATE_HIGHLIGHT_SYNTAX = [
     HighlightDefinition(
         name='location',
-        contains=['colon', 'number', 'path'],
+        contains=('colon', 'number', 'path'),
         nextgroup='kind',
         re=r'\([^:]\+:\)\?\d\+:\d\+',
     ),
@@ -84,7 +95,7 @@ def mangle_name(name: str) -> str:
             match.append("contains=" + ','.join(
                 mangle_name(i) for i in hl_def.contains
             ))
-        else:
+        elif hl_def.contains is None:
             match.append("contains=NONE")
 
         if hl_def.nextgroup is not None:


Test patch: