diff --git a/binder/environment.yml b/binder/environment.yml index 6e8ecd0b1d6..5ce8931ca5d 100644 --- a/binder/environment.yml +++ b/binder/environment.yml @@ -15,6 +15,7 @@ dependencies: - intervaltree >=3.0.2 - ipython >=7.6.0 - jedi >=0.17.2,<0.19.0 +- jellyfish >=0.7 - jsonschema >=3.2.0 - keyring >=17.0.0 - nbconvert >=4.0 diff --git a/requirements/conda.txt b/requirements/conda.txt index f159accc689..93a0b15132f 100644 --- a/requirements/conda.txt +++ b/requirements/conda.txt @@ -11,6 +11,7 @@ diff-match-patch >=20181111 intervaltree >=3.0.2 IPython >=7.6.0 jedi >=0.17.2,<0.19.0 +jellyfish >=0.7 jsonschema >=3.2.0 keyring >=17.0.0 nbconvert >=4.0 diff --git a/setup.py b/setup.py index c45817dfe6b..f81c314df28 100644 --- a/setup.py +++ b/setup.py @@ -210,6 +210,7 @@ def run(self): 'intervaltree>=3.0.2', 'ipython>=7.6.0', 'jedi>=0.17.2,<0.19.0', + 'jellyfish>=0.7', 'jsonschema>=3.2.0', 'keyring>=17.0.0', 'nbconvert>=4.0', diff --git a/spyder/dependencies.py b/spyder/dependencies.py index 8e3af788e6d..61576fd8242 100644 --- a/spyder/dependencies.py +++ b/spyder/dependencies.py @@ -41,6 +41,7 @@ INTERVALTREE_REQVER = None if is_pynsist() else '>=3.0.2' IPYTHON_REQVER = ">=7.6.0" JEDI_REQVER = '>=0.17.2;<0.19.0' +JELLYFISH_REQVER = '>=0.7' JSONSCHEMA_REQVER = '>=3.2.0' KEYRING_REQVER = '>=17.0.0' NBCONVERT_REQVER = '>=4.0' @@ -127,6 +128,10 @@ 'package_name': "jedi", 'features': _("Main backend for the Python Language Server"), 'required_version': JEDI_REQVER}, + {'modname': "jellyfish", + 'package_name': "jellyfish", + 'features': _("Optimize algorithms for folding"), + 'required_version': JELLYFISH_REQVER}, {'modname': 'jsonschema', 'package_name': 'jsonschema', 'features': _('Verify if snippets files are valid'), diff --git a/spyder/plugins/editor/panels/utils.py b/spyder/plugins/editor/panels/utils.py index aff64782e2e..9f058b25f4a 100644 --- a/spyder/plugins/editor/panels/utils.py +++ b/spyder/plugins/editor/panels/utils.py @@ -157,7 +157,7 @@ def merge_folding(ranges, current_tree, root): while deleted_entry is not None and changed_entry is not None: deleted_entry_i = deleted_entry.data changed_entry_i = changed_entry.data - dist = textdistance.jaccard.normalized_similarity( + dist = textdistance.hamming.normalized_similarity( deleted_entry_i.text, changed_entry_i.text) if dist >= 0.80: