Repository: spyder-ide/spyder

Issue:
Double pydocstyle errors
<!--- **PLEASE READ:** When submitting here, please ensure you've completed the following checklist and checked the boxes to confirm. Issue reports without it may be closed. Thanks! --->

### Issue Report Checklist

* [x] Searched the [issues page](https://github.com/spyder-ide/spyder/issues?q=is%3Aissue) for similar reports
* [x] Read the relevant sections of the [Spyder Troubleshooting Guide](https://github.com/spyder-ide/spyder/wiki/Troubleshooting-Guide-and-FAQ) and followed its advice
* [x] Reproduced the issue after updating with ``conda update spyder`` (or ``pip``, if not using Anaconda)
* [ ] Could not reproduce inside ``jupyter qtconsole`` (if console-related)
* [ ] Tried basic troubleshooting (if a bug/error)
    * [x] Restarted Spyder
    * [x] Reset preferences with ``spyder --reset``
    * [ ] Reinstalled the latest version of [Anaconda](https://www.anaconda.com/download/)
    * [x] Tried the other applicable steps from the Troubleshooting Guide
* [x] Completed the **Problem Description**, **Steps to Reproduce** and **Version** sections below


## Problem Description

When I activate linting, I get a double warning regarding `D101` and `D102` errors:
![Untitled](https://user-images.githubusercontent.com/4856462/118176092-7df39280-b420-11eb-9664-477923c639f6.png)



### What steps reproduce the problem?

1. Activate linting.
2. Write a class or public method without docstring.

### What is the expected output? What do you see instead?

To have only one error warning in the pop-up.

## Versions
<!--- You can get this information from Help > About Spyder...
or (if Spyder won't launch) the "conda list" command
from the Anaconda Prompt/Terminal/command line. --->

* Spyder version: 5.0.2
* Python version: 3.8.5 64-bit
* Qt version: 5.12.9
* PyQt version: 5.12.3
* Operating System name/version: Linux Mint 20.1

### Dependencies
<!--- Please go to the menu entry Help > Dependencies,
press the Copy to clipboard button and paste below --->

```

# Mandatory:
atomicwrites >=1.2.0          :  1.4.0 (OK)
chardet >=2.0.0               :  4.0.0 (OK)
cloudpickle >=0.5.0           :  1.6.0 (OK)
cookiecutter >=1.6.0          :  1.7.2 (OK)
diff_match_patch >=20181111   :  20200713 (OK)
intervaltree >=3.0.2          :  3.1.0 (OK)
IPython >=7.6.0               :  7.23.1 (OK)
jedi =0.17.2                  :  0.17.2 (OK)
jsonschema >=3.2.0            :  3.2.0 (OK)
keyring >=17.0.0              :  23.0.1 (OK)
nbconvert >=4.0               :  6.0.7 (OK)
numpydoc >=0.6.0              :  1.1.0 (OK)
parso =0.7.0                  :  0.7.0 (OK)
pexpect >=4.4.0               :  4.6.0 (OK)
pickleshare >=0.4             :  0.7.5 (OK)
psutil >=5.3                  :  5.5.1 (OK)
pygments >=2.0                :  2.9.0 (OK)
pylint >=1.0                  :  2.8.2 (OK)
pyls >=0.36.2;<1.0.0          :  0.36.2 (OK)
pyls_black >=0.4.6            :  0.4.6 (OK)
pyls_spyder >=0.3.2;<0.4.0    :  0.3.2 (OK)
qdarkstyle =3.0.2             :  3.0.2 (OK)
qstylizer >=0.1.10            :  0.2.0 (OK)
qtawesome >=1.0.2             :  1.0.2 (OK)
qtconsole >=5.1.0             :  5.1.0 (OK)
qtpy >=1.5.0                  :  1.9.0 (OK)
setuptools >=39.0.0           :  56.2.0 (OK)
sphinx >=0.6.6                :  4.0.1 (OK)
spyder_kernels >=2.0.2;<2.1.0 :  2.0.2 (OK)
textdistance >=4.2.0          :  4.2.1 (OK)
three_merge >=0.1.1           :  0.1.1 (OK)
watchdog >=0.10.3;<2.0.0      :  1.0.2 (OK)
xdg >=0.26                    :  0.26 (OK)
zmq >=17                      :  22.0.3 (OK)

# Optional:
cython >=0.21                 :  None (NOK)
matplotlib >=2.0.0            :  3.4.2 (OK)
numpy >=1.7                   :  1.20.3 (OK)
pandas >=1.1.1                :  1.2.4 (OK)
scipy >=0.17.0                :  1.6.3 (OK)
sympy >=0.7.3                 :  1.8 (OK)
```



Discussion:
Hi @sphh, could you please provide the snippet of code that reproduces the duplicate linting suggestion? We could not reproduce this issue locally.
I just noticed, that not only the `D101` and `D102` errors are affected, but all errors:
```python3
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu May 13 22:40:32 2021

"""

```
![Untitled](https://user-images.githubusercontent.com/4856462/118185546-2eb35f00-b42c-11eb-853c-3115c7707ea6.png)

I also have the editor split horizontally (two editors beside each other) and the outline pane showing.

<details><summary>`spyder.ini`</summary>

```
[main]
opengl = automatic
single_instance = True
open_files_port = 21128
mac_open_file = False
normal_screen_resolution = False
high_dpi_scaling = True
high_dpi_custom_scale_factor = False
high_dpi_custom_scale_factors = 1.5
vertical_tabs = False
prompt_on_exit = False
panes_locked = True
window/is_maximized = True
window/is_fullscreen = False
use_custom_margin = True
custom_margin = 0
use_custom_cursor_blinking = False
show_internal_errors = True
check_updates_on_startup = True
cursor/width = 2
report_error/remember_token = False
show_tour_message = False
version = 69.0.0
previous_crash =
interface_language = en
custom_cursor_blinking = 1200
window/statusbar = True

[toolbar]
enable = True
toolbars_visible = True

[statusbar]
show_status_bar = True
memory_usage/enable = False
memory_usage/timeout = 2000
cpu_usage/enable = False
cpu_usage/timeout = 2000
clock/enable = False
clock/timeout = 1000

[internal_console]
max_line_count = 300
working_dir_history = 30
working_dir_adjusttocontents = False
wrap = True
codecompletion/auto = False
external_editor/path = SciTE
external_editor/gotoline = -goto:
message = Spyder Internal Console

	This console is used to report application
	internal errors and to inspect Spyder
	internals with the following commands:
	  spy.app, spy.window, dir(spy)

	Please don't use it to run your code


multithreaded = False
profile = False
commands = []
namespace = {}
show_internal_errors = True
first_time = True

[main_interpreter]
default = True
custom = False
umr/enabled = True
umr/verbose = True
umr/namelist = []

[ipython_console]
show_banner = True
completion_type = 0
show_calltips = True
ask_before_closing = False
show_reset_namespace_warning = True
buffer_size = 500
pylab = True
pylab/autoload = False
pylab/backend = 0
pylab/inline/figure_format = 0
pylab/inline/resolution = 72
pylab/inline/width = 6
pylab/inline/height = 4
pylab/inline/bbox_inches = True
startup/run_lines =
startup/use_run_file = False
startup/run_file =
greedy_completer = False
jedi_completer = False
autocall = 0
symbolic_math = False
in_prompt =
out_prompt =
show_elapsed_time = False
ask_before_restart = True
hide_cmd_windows = True
pdb_prevent_closing = True
pdb_ignore_lib = False
pdb_execute_events = True
pdb_use_exclamation_mark = True
pdb_stop_first_line = True
startup/pdb_run_lines =
first_time = True

[variable_explorer]
check_all = False
dataframe_format = .6g
excluded_names = ['nan', 'inf', 'infty', 'little_endian', 'colorbar_doc', 'typecodes', '__builtins__', '__main__', '__doc__', 'NaN', 'Inf', 'Infinity', 'sctypes', 'rcParams', 'rcParamsDefault', 'sctypeNA', 'typeNA', 'False_', 'True_']
exclude_private = True
exclude_uppercase = True
exclude_capitalized = False
exclude_unsupported = False
exclude_callables_and_modules = True
truncate = True
minmax = False
show_callable_attributes = True
show_special_attributes = False
first_time = True

[plots]
mute_inline_plotting = True
show_plot_outline = False
auto_fit_plotting = True
save_dir = /home/user
first_time = False

[editor]
printer_header/font/family = ['Sans Serif', 'DejaVu Sans', 'Bitstream Vera Sans', 'Bitstream Charter', 'Lucida Grande', 'MS Shell Dlg 2', 'Calibri', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', 'Times', 'sans-serif']
printer_header/font/size = 9
printer_header/font/italic = False
printer_header/font/bold = False
wrap = False
wrapflag = True
todo_list = True
realtime_analysis = True
realtime_analysis/timeout = 2500
outline_explorer = True
line_numbers = True
blank_spaces = False
edge_line = True
edge_line_columns = 79
indent_guides = False
code_folding = False
show_code_folding_warning = True
scroll_past_end = True
toolbox_panel = True
close_parentheses = True
close_quotes = True
add_colons = True
auto_unindent = True
indent_chars = *    *
tab_stop_width_spaces = 4
check_eol_chars = True
convert_eol_on_save = False
convert_eol_on_save_to = LF
tab_always_indent = False
intelligent_backspace = True
automatic_completions = True
automatic_completions_after_chars = 3
automatic_completions_after_ms = 300
completions_hint = True
completions_hint_after_ms = 500
underline_errors = True
highlight_current_line = True
highlight_current_cell = True
occurrence_highlighting = True
occurrence_highlighting/timeout = 1500
always_remove_trailing_spaces = True
add_newline = True
always_remove_trailing_newlines = True
show_tab_bar = True
show_class_func_dropdown = True
max_recent_files = 20
save_all_before_run = True
focus_to_editor = True
run_cell_copy = False
onsave_analysis = False
autosave_enabled = True
autosave_interval = 60
docstring_type = Numpydoc
strip_trailing_spaces_on_modify = False
windows_layout_settings = []
last_working_dir = /home/user
first_time = True

[historylog]
enable = True
wrap = True
go_to_eof = True
line_numbers = False
first_time = False

[help]
enable = True
max_history_entries = 20
wrap = True
connect/editor = False
connect/ipython_console = False
math = True
automatic_import = True
plain_mode = False
rich_mode = True
show_source = False
locked = False
css_path = /usr/local/lib/python3.8/dist-packages/spyder/plugins/help/utils/static/css
first_time = False

[onlinehelp]
enable = True
handle_links = False
max_history_entries = 20
first_time = False

[outline_explorer]
enable = True
show_fullpath = False
show_all_files = False
group_cells = True
sort_files_alphabetically = False
show_comments = True
follow_cursor = True
display_variables = False
first_time = True
visibility = True

[project_explorer]
name_filters = {}
show_all = True
show_hscrollbar = True
visible_if_project_open = False
date_column = False
file_associations = {}
show_hidden = False
single_click_to_open = False
size_column = False
type_column = False
first_time = False

[explorer]
enable = True
name_filters = {}
show_hidden = False
single_click_to_open = False
size_column = False
type_column = False
date_column = True
visible_columns = [0, 3]
first_time = False

[find_in_files]
enable = True
supported_encodings = ['utf-8', 'iso-8859-1', 'cp1252']
exclude = ['']
exclude_regexp = False
search_text_regexp = False
search_text = ['', '(^|#)[ ]*(TODO|FIXME|XXX|HINT|TIP|@todo|HACK|BUG|OPTIMIZE|!!!|\\?\\?\\?)([^#]*)']
search_text_samples = ['(^|#)[ ]*(TODO|FIXME|XXX|HINT|TIP|@todo|HACK|BUG|OPTIMIZE|!!!|\\?\\?\\?)([^#]*)']
more_options = False
case_sensitive = False
exclude_case_sensitive = False
max_results = 1000
text_color = #19232D
hist_limit = 15
path_history = []
exclude_idx = 0
search_in_index = 0
first_time = False

[breakpoints]
enable = True
first_time = False

[completions]
enable = True
kite_call_to_action = False
enable_code_snippets = True
completions_wait_for_ms = 200
enabled_providers = {'kite': False}
provider_configuration = {'fallback': {'version': '0.1.0', 'values': {}, 'defaults': {}}, 'kite': {'version': '0.1.0', 'values': {'spyder_runs': 3, 'show_installation_dialog': False, 'show_onboarding': True, 'show_installation_error_message': True}, 'defaults': {'spyder_runs': 1, 'show_installation_dialog': True, 'show_onboarding': True, 'show_installation_error_message': True}}, 'lsp': {'version': '0.1.0', 'values': {'enable_hover_hints': True, 'show_lsp_down_warning': True, 'code_completion': True, 'jedi_definition': True, 'jedi_definition/follow_imports': True, 'jedi_signature_help': True, 'preload_modules': 'numpy, scipy, sympy, pandas, networkx, statsmodels, matplotlib, sklearn, skimage, mpmath, os, pillow, OpenGL, array, audioop, binascii, cPickle, cStringIO, cmath, collections, datetime, errno, exceptions, gc, importlib, itertools, math, mmap, msvcrt, nt, operator, ast, signal, sys, threading, time, wx, zipimport, zlib, pytest, PyQt4, PyQt5, PySide, PySide2, os.path', 'pyflakes': True, 'mccabe': True, 'formatting': 'autopep8', 'format_on_save': False, 'pycodestyle': True, 'pycodestyle/filename': '', 'pycodestyle/exclude': '', 'pycodestyle/select': '', 'pycodestyle/ignore': '', 'pycodestyle/max_line_length': 79, 'pydocstyle': True, 'pydocstyle/convention': 'numpy', 'pydocstyle/select': '', 'pydocstyle/ignore': '', 'pydocstyle/match': '(?!test_).*\\.py', 'pydocstyle/match_dir': '[^\\.].*', 'advanced/enabled': False, 'advanced/module': 'pyls', 'advanced/host': '127.0.0.1', 'advanced/port': 2087, 'advanced/external': False, 'advanced/stdio': False}, 'defaults': {'enable_hover_hints': True, 'show_lsp_down_warning': True, 'code_completion': True, 'jedi_definition': True, 'jedi_definition/follow_imports': True, 'jedi_signature_help': True, 'preload_modules': 'numpy, scipy, sympy, pandas, networkx, statsmodels, matplotlib, sklearn, skimage, mpmath, os, pillow, OpenGL, array, audioop, binascii, cPickle, cStringIO, cmath, collections, datetime, errno, exceptions, gc, importlib, itertools, math, mmap, msvcrt, nt, operator, ast, signal, sys, threading, time, wx, zipimport, zlib, pytest, PyQt4, PyQt5, PySide, PySide2, os.path', 'pyflakes': True, 'mccabe': False, 'formatting': 'autopep8', 'format_on_save': False, 'pycodestyle': False, 'pycodestyle/filename': '', 'pycodestyle/exclude': '', 'pycodestyle/select': '', 'pycodestyle/ignore': '', 'pycodestyle/max_line_length': 79, 'pydocstyle': False, 'pydocstyle/convention': 'numpy', 'pydocstyle/select': '', 'pydocstyle/ignore': '', 'pydocstyle/match': '(?!test_).*\\.py', 'pydocstyle/match_dir': '[^\\.].*', 'advanced/enabled': False, 'advanced/module': 'pyls', 'advanced/host': '127.0.0.1', 'advanced/port': 2087, 'advanced/external': False, 'advanced/stdio': False}}, 'snippets': {'version': '0.1.0', 'values': {'python': {'class': {'plain': {'text': 'class ${1:ClassName}:\n    def __init__(self, ${2:*args}, ${3:**kwargs}):\n        ${4:pass}$0', 'remove_trigger': False}, 'inheritance': {'text': 'class ${1:ClassName}($2):\n    def __init__(self, ${3:*args}, ${4:**kwargs}):\n        super().__init__(${5:*args}, ${6:**kwargs})$0', 'remove_trigger': False}}, 'def': {'method': {'text': 'def ${1:method_name}(self, ${2:*args}, ${3:**kwargs}):\n    ${4:pass}$0', 'remove_trigger': False}, 'function': {'text': 'def ${1:func_name}(${2:*args}, ${3:**kwargs}):\n    ${4:pass}$0', 'remove_trigger': False}}, 'for': {'range': {'text': 'for ${1:i} in range(${2:0}, ${3:n}):\n    ${4:pass}$0', 'remove_trigger': False}, 'iterator': {'text': 'for ${1:x} in ${2:iterator}:\n    ${3:pass}$0', 'remove_trigger': False}}, 'while': {'condition': {'text': 'while ${1:cond}:\n    ${2:pass}$0', 'remove_trigger': False}, 'infinite': {'text': 'while True:\n    ${1:pass}$0', 'remove_trigger': False}}, 'import': {'package': {'text': 'import ${1:package}$0', 'remove_trigger': False}, 'alias': {'text': 'import ${1:package} as ${2:alias}$0', 'remove_trigger': False}}, 'from': {'import': {'text': 'from ${1:package} import ${2:module}$0', 'remove_trigger': False}, 'alias': {'text': 'from ${1:package} import ${2:module} as ${3:alias}$0', 'remove_trigger': False}}, 'async': {'def': {'text': 'async def ${1:func_name}(${2:*args}, ${3:**kwargs}):\n    ${4:pass}$0', 'remove_trigger': False}, 'method': {'text': 'async def ${1:method_name}(self, ${2:*args}, ${3:**kwargs}):\n    ${4:pass}$0', 'remove_trigger': False}, 'for': {'text': 'async for ${1:x} in ${2:iterator}:\n    ${3:pass}$0', 'remove_trigger': False}}, 'try': {'except': {'text': '\ntry:\n    ${1:pass}\nexcept ${2:Exception}:\n    ${3:pass}$0\n', 'remove_trigger': False}, 'except alias': {'text': 'try:\n    ${1:pass}\nexcept ${2:Exception} as ${3:e}:\n    ${4:pass}$0', 'remove_trigger': False}, 'except/finally': {'text': 'try:\n    ${1:pass}\nexcept ${2:Exception}:\n    ${3:pass}\nfinally:\n    ${4:pass}$0', 'remove_trigger': False}, 'except alias/finally': {'text': 'try:\n    ${1:pass}\nexcept ${2:Exception} as ${3:e}:\n    ${4:pass}\nfinally:\n    ${5:pass}$0', 'remove_trigger': False}}, 'with': {'context': {'text': 'with ${1:context} as ${2:alias}:\n    ${3:pass}$0', 'remove_trigger': False}}, 'list': {'comprehension': {'text': '[${1:x} for ${2:x} in ${3:iterator}]$0', 'remove_trigger': True}, 'comprehension if': {'text': '[${1:x} for ${2:x} in ${3:iterator} if ${4:cond}]$0', 'remove_trigger': True}, 'comprehension if/else': {'text': '[${1:x} if ${2:cond} else ${3:other} for ${4:x} in ${5:iterator}]$0', 'remove_trigger': True}}, 'dict': {'comprehension': {'text': '{${1:key}:${2:value} for ${3:elem} in ${4:iterator}\\}$0', 'remove_trigger': True}, 'comprehension if': {'text': '{${1:key}:${2:value} for ${3:elem} in ${4:iterator} if ${5:cond}\\}$0', 'remove_trigger': True}}, 'set': {'comprehension': {'text': '{${1:elem} for ${2:elem} in ${3:iterator}\\}$0', 'remove_trigger': True}, 'comprehension if': {'text': '{${1:elem} for ${2:elem} in ${3:iterator} if ${4:cond}\\}$0', 'remove_trigger': True}, 'comprehension if/else': {'text': '{${1:elem} if ${2:cond} else ${3:other} for ${4:elem} in ${5:iterator}\\}$0', 'remove_trigger': True}}}}, 'defaults': {'python': {'class': {'plain': {'text': 'class ${1:ClassName}:\n    def __init__(self, ${2:*args}, ${3:**kwargs}):\n        ${4:pass}$0', 'remove_trigger': False}, 'inheritance': {'text': 'class ${1:ClassName}($2):\n    def __init__(self, ${3:*args}, ${4:**kwargs}):\n        super().__init__(${5:*args}, ${6:**kwargs})$0', 'remove_trigger': False}}, 'def': {'method': {'text': 'def ${1:method_name}(self, ${2:*args}, ${3:**kwargs}):\n    ${4:pass}$0', 'remove_trigger': False}, 'function': {'text': 'def ${1:func_name}(${2:*args}, ${3:**kwargs}):\n    ${4:pass}$0', 'remove_trigger': False}}, 'for': {'range': {'text': 'for ${1:i} in range(${2:0}, ${3:n}):\n    ${4:pass}$0', 'remove_trigger': False}, 'iterator': {'text': 'for ${1:x} in ${2:iterator}:\n    ${3:pass}$0', 'remove_trigger': False}}, 'while': {'condition': {'text': 'while ${1:cond}:\n    ${2:pass}$0', 'remove_trigger': False}, 'infinite': {'text': 'while True:\n    ${1:pass}$0', 'remove_trigger': False}}, 'import': {'package': {'text': 'import ${1:package}$0', 'remove_trigger': False}, 'alias': {'text': 'import ${1:package} as ${2:alias}$0', 'remove_trigger': False}}, 'from': {'import': {'text': 'from ${1:package} import ${2:module}$0', 'remove_trigger': False}, 'alias': {'text': 'from ${1:package} import ${2:module} as ${3:alias}$0', 'remove_trigger': False}}, 'async': {'def': {'text': 'async def ${1:func_name}(${2:*args}, ${3:**kwargs}):\n    ${4:pass}$0', 'remove_trigger': False}, 'method': {'text': 'async def ${1:method_name}(self, ${2:*args}, ${3:**kwargs}):\n    ${4:pass}$0', 'remove_trigger': False}, 'for': {'text': 'async for ${1:x} in ${2:iterator}:\n    ${3:pass}$0', 'remove_trigger': False}}, 'try': {'except': {'text': '\ntry:\n    ${1:pass}\nexcept ${2:Exception}:\n    ${3:pass}$0\n', 'remove_trigger': False}, 'except alias': {'text': 'try:\n    ${1:pass}\nexcept ${2:Exception} as ${3:e}:\n    ${4:pass}$0', 'remove_trigger': False}, 'except/finally': {'text': 'try:\n    ${1:pass}\nexcept ${2:Exception}:\n    ${3:pass}\nfinally:\n    ${4:pass}$0', 'remove_trigger': False}, 'except alias/finally': {'text': 'try:\n    ${1:pass}\nexcept ${2:Exception} as ${3:e}:\n    ${4:pass}\nfinally:\n    ${5:pass}$0', 'remove_trigger': False}}, 'with': {'context': {'text': 'with ${1:context} as ${2:alias}:\n    ${3:pass}$0', 'remove_trigger': False}}, 'list': {'comprehension': {'text': '[${1:x} for ${2:x} in ${3:iterator}]$0', 'remove_trigger': True}, 'comprehension if': {'text': '[${1:x} for ${2:x} in ${3:iterator} if ${4:cond}]$0', 'remove_trigger': True}, 'comprehension if/else': {'text': '[${1:x} if ${2:cond} else ${3:other} for ${4:x} in ${5:iterator}]$0', 'remove_trigger': True}}, 'dict': {'comprehension': {'text': '{${1:key}:${2:value} for ${3:elem} in ${4:iterator}\\}$0', 'remove_trigger': True}, 'comprehension if': {'text': '{${1:key}:${2:value} for ${3:elem} in ${4:iterator} if ${5:cond}\\}$0', 'remove_trigger': True}}, 'set': {'comprehension': {'text': '{${1:elem} for ${2:elem} in ${3:iterator}\\}$0', 'remove_trigger': True}, 'comprehension if': {'text': '{${1:elem} for ${2:elem} in ${3:iterator} if ${4:cond}\\}$0', 'remove_trigger': True}, 'comprehension if/else': {'text': '{${1:elem} if ${2:cond} else ${3:other} for ${4:elem} in ${5:iterator}\\}$0', 'remove_trigger': True}}}}}}
request_priorities = {'$/cancelRequest': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'client/registerCapability': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'client/unregisterCapability': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'codeLens/resolve': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'completionItem/resolve': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/codeAction': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/codeLens': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/completion': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/cursorEvent': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/definition': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/didChange': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/didClose': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/didOpen': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/didSave': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/foldingRange': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/formatting': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/documentHighlight': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/hover': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/documentLink': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'documentLink/resolve': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/onTypeFormatting': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/publishDiagnostics': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/rangeFormatting': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, ' textDocument/references': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/rename': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/signatureHelp': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/documentSymbol': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/willSave': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'textDocument/willSaveWaitUntil': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'exit': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'initialize': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'initialized': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'shutdown': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'telemetry/event': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'window/logMessage': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'window/showMessage': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'window/showMessageRequest': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/applyEdit': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/configuration': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/didChangeConfiguration': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/executeCommand': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/workspaceFolders': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/didChangeWorkspaceFolders': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/symbol': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}, 'workspace/didChangeWatchedFiles': {'fallback': 1, 'kite': 0, 'lsp': 0, 'snippets': 2}}

[profiler]
enable = True
text_color = #19232D
first_time = False
max_entries = 50

[pylint]
enable = True
max_entries = 30
project_dir = '/home/user/Software/git/menu'
save_before = True
first_time = False

[workingdir]
working_dir_adjusttocontents = False
working_dir_history = 20
console/use_project_or_home_directory = False
console/use_cwd = True
console/use_fixed_directory = False
startup/use_fixed_directory = False
init_workdir = None
history = ['/home/user/Software/git/menu', '/home/user']
workdir = None
startup/use_project_or_home_directory = True

[shortcuts]
_/close pane = Shift+Ctrl+F4
_/lock unlock panes = Shift+Ctrl+F5
_/use next layout = Shift+Alt+PgDown
_/use previous layout = Shift+Alt+PgUp
_/maximize pane = Ctrl+Alt+Shift+M
_/fullscreen mode = F11
_/save current layout = Shift+Alt+S
_/layout preferences = Shift+Alt+P
_/spyder documentation = F1
_/restart = Shift+Alt+R
_/quit = Ctrl+Q
_/file switcher = Ctrl+P
_/symbol finder = Ctrl+Alt+P
_/debug = Ctrl+F5
_/debug step over = Ctrl+F10
_/debug continue = Ctrl+F12
_/debug step into = Ctrl+F11
_/debug step return = Ctrl+Shift+F11
_/debug exit = Ctrl+Shift+F12
_/run = F5
_/configure = Ctrl+F6
_/re-run last script = F6
_/switch to help = Ctrl+Shift+H
_/switch to outline_explorer = Ctrl+Shift+O
_/switch to editor = Ctrl+Shift+E
_/switch to historylog = Ctrl+Shift+L
_/switch to onlinehelp = Ctrl+Shift+D
_/switch to project_explorer = Ctrl+Shift+P
_/switch to ipython_console = Ctrl+Shift+I
_/switch to variable_explorer = Ctrl+Shift+V
_/switch to find_in_files = Ctrl+Shift+F
_/switch to explorer = Ctrl+Shift+X
_/switch to plots = Ctrl+Shift+G
_/switch to pylint = Ctrl+Shift+C
_/switch to profiler = Ctrl+Shift+R
find_replace/find text = Ctrl+F
find_replace/find next = F3
find_replace/find previous = Shift+F3
find_replace/replace text = Ctrl+R
find_replace/hide find and replace = Escape
editor/code completion = Ctrl+Space
editor/duplicate line up = Shift+Alt+Up
editor/duplicate line down = Shift+Alt+Down
editor/delete line = Ctrl+D
editor/transform to uppercase = Ctrl+Shift+U
editor/transform to lowercase = Ctrl+U
editor/indent = Ctrl+]
editor/unindent = Ctrl+[
editor/move line up = Alt+Up
editor/move line down = Alt+Down
editor/go to new line = Ctrl+Shift+Return
editor/go to definition = Ctrl+G
editor/toggle comment = Ctrl+1
editor/blockcomment = Ctrl+4
editor/unblockcomment = Ctrl+5
editor/start of line = Meta+A
editor/end of line = Meta+E
editor/previous line = Meta+P
editor/next line = Meta+N
editor/previous char = Meta+B
editor/next char = Meta+F
editor/previous word = Ctrl+Left
editor/next word = Ctrl+Right
editor/kill to line end = Meta+K
editor/kill to line start = Meta+U
editor/yank = Meta+Y
editor/rotate kill ring = Shift+Meta+Y
editor/kill previous word = Meta+Backspace
editor/kill next word = Meta+D
editor/start of document = Ctrl+Home
editor/end of document = Ctrl+End
editor/undo = Ctrl+Z
editor/redo = Ctrl+Shift+Z
editor/cut = Ctrl+X
editor/copy = Ctrl+C
editor/paste = Ctrl+V
editor/delete = Del
editor/select all = Ctrl+A
editor/inspect current object = Ctrl+I
editor/breakpoint = F12
editor/conditional breakpoint = Shift+F12
editor/run selection = F9
editor/go to line = Ctrl+L
editor/go to previous file = Ctrl+Shift+Tab
editor/go to next file = Ctrl+Tab
editor/cycle to previous file = Ctrl+PgUp
editor/cycle to next file = Ctrl+PgDown
editor/new file = Ctrl+N
editor/open last closed = Ctrl+Shift+T
editor/open file = Ctrl+O
editor/save file = Ctrl+S
editor/save all = Ctrl+Alt+S
editor/save as = Ctrl+Shift+S
editor/close all = Ctrl+Shift+W
editor/last edit location = Ctrl+Alt+Shift+Left
editor/previous cursor position = Alt+Left
editor/next cursor position = Alt+Right
editor/previous warning = Ctrl+Alt+Shift+,
editor/next warning = Ctrl+Alt+Shift+.
editor/zoom in 1 = Ctrl++
editor/zoom in 2 = Ctrl+=
editor/zoom out = Ctrl+-
editor/zoom reset = Ctrl+0
editor/close file 1 = Ctrl+W
editor/close file 2 = Ctrl+F4
editor/run cell = Ctrl+Return
editor/run cell and advance = Shift+Return
editor/debug cell = Alt+Shift+Return
editor/go to next cell = Ctrl+Down
editor/go to previous cell = Ctrl+Up
editor/re-run last cell = Alt+Return
editor/split vertically = Ctrl+{
editor/split horizontally = Ctrl+_
editor/close split panel = Alt+Shift+W
editor/docstring = Ctrl+Alt+D
editor/autoformatting = Ctrl+Alt+I
editor/show in external file explorer =
_/switch to breakpoints = Ctrl+Shift+B
console/inspect current object = Ctrl+I
console/clear shell = Ctrl+L
console/clear line = Shift+Escape
pylint/run analysis = F8
profiler/run profiler = F10
ipython_console/new tab = Ctrl+T
ipython_console/reset namespace = Ctrl+Alt+R
ipython_console/restart kernel = Ctrl+.
array_builder/enter array inline = Ctrl+Alt+M
array_builder/enter array table = Ctrl+M
variable_explorer/copy = Ctrl+C
variable_explorer/search = Ctrl+F
variable_explorer/refresh = Ctrl+R
plots/copy = Ctrl+C
plots/previous figure = Ctrl+PgUp
plots/next figure = Ctrl+PgDown
plots/save = Ctrl+S
plots/save all = Ctrl+Alt+S
plots/close = Ctrl+W
plots/close all = Ctrl+Shift+W
plots/zoom in = Ctrl++
plots/zoom out = Ctrl+-
explorer/copy file = Ctrl+C
explorer/paste file = Ctrl+V
explorer/copy absolute path = Ctrl+Alt+C
explorer/copy relative path = Ctrl+Alt+Shift+C
find_in_files/find in files = Ctrl+Alt+F
shortcuts/show_shortcut_summary_action =
_/switch to internal_console =
profiler/profile_current_filename_action =

[appearance]
icon_theme = spyder 3
font/family = 'Hack'
font/size = 11
font/italic = False
font/bold = False
rich_font/family = ['Sans Serif', 'DejaVu Sans', 'Bitstream Vera Sans', 'Bitstream Charter', 'Lucida Grande', 'MS Shell Dlg 2', 'Calibri', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', 'Times', 'sans-serif']
rich_font/size = 9
rich_font/italic = False
rich_font/bold = False
ui_theme = light
names = ['emacs', 'idle', 'inkpot', 'minimal', 'monokai', 'nightlion', 'notepad++', 'oblivion', 'obsidian', 'pastel', 'pydev', 'retta', 'roboticket', 'scintilla', 'solarized/dark', 'solarized/light', 'spyder', 'spyder/dark', 'sublime-monokai/extended', 'vibrant-ink', 'zenburn']
selected = spyder
emacs/name = Emacs
emacs/background = #000000
emacs/currentline = #2b2b43
emacs/currentcell = #1c1c2d
emacs/occurrence = #1A72BB
emacs/ctrlclick = #0000ff
emacs/sideareas = #555555
emacs/matched_p = #009800
emacs/unmatched_p = #c80000
emacs/normal = ('#ffffff', False, False)
emacs/keyword = ('#3c51e8', False, False)
emacs/magic = ('#3c51e8', False, False)
emacs/builtin = ('#900090', False, False)
emacs/definition = ('#ff8040', True, False)
emacs/comment = ('#005100', False, False)
emacs/string = ('#00aa00', False, True)
emacs/number = ('#800000', False, False)
emacs/instance = ('#ffffff', False, True)
idle/name = IDLE
idle/background = #ffffff
idle/currentline = #f2e6f3
idle/currentcell = #feefff
idle/occurrence = #C2E3FA
idle/ctrlclick = #0000ff
idle/sideareas = #efefef
idle/matched_p = #99ff99
idle/unmatched_p = #ff9999
idle/normal = ('#000000', False, False)
idle/keyword = ('#ff7700', True, False)
idle/magic = ('#ff7700', True, False)
idle/builtin = ('#900090', False, False)
idle/definition = ('#0000ff', False, False)
idle/comment = ('#dd0000', False, True)
idle/string = ('#00aa00', False, False)
idle/number = ('#924900', False, False)
idle/instance = ('#777777', True, True)
monokai/name = Monokai
monokai/background = #2a2b24
monokai/currentline = #484848
monokai/currentcell = #3d3d3d
monokai/occurrence = #1A72BB
monokai/ctrlclick = #0000ff
monokai/sideareas = #2a2b24
monokai/matched_p = #688060
monokai/unmatched_p = #bd6e76
monokai/normal = ('#ddddda', False, False)
monokai/keyword = ('#f92672', False, False)
monokai/magic = ('#f92672', False, False)
monokai/builtin = ('#ae81ff', False, False)
monokai/definition = ('#a6e22e', False, False)
monokai/comment = ('#75715e', False, True)
monokai/string = ('#e6db74', False, False)
monokai/number = ('#ae81ff', False, False)
monokai/instance = ('#ddddda', False, True)
pydev/name = Pydev
pydev/background = #ffffff
pydev/currentline = #e8f2fe
pydev/currentcell = #eff8fe
pydev/occurrence = #C2E3FA
pydev/ctrlclick = #0000ff
pydev/sideareas = #efefef
pydev/matched_p = #99ff99
pydev/unmatched_p = #ff99992
pydev/normal = ('#000000', False, False)
pydev/keyword = ('#0000ff', False, False)
pydev/magic = ('#0000ff', False, False)
pydev/builtin = ('#900090', False, False)
pydev/definition = ('#000000', True, False)
pydev/comment = ('#c0c0c0', False, False)
pydev/string = ('#00aa00', False, True)
pydev/number = ('#800000', False, False)
pydev/instance = ('#000000', False, True)
scintilla/name = Scintilla
scintilla/background = #ffffff
scintilla/currentline = #e1f0d1
scintilla/currentcell = #edfcdc
scintilla/occurrence = #C2E3FA
scintilla/ctrlclick = #0000ff
scintilla/sideareas = #efefef
scintilla/matched_p = #99ff99
scintilla/unmatched_p = #ff9999
scintilla/normal = ('#000000', False, False)
scintilla/keyword = ('#00007f', True, False)
scintilla/magic = ('#00007f', True, False)
scintilla/builtin = ('#000000', False, False)
scintilla/definition = ('#007f7f', True, False)
scintilla/comment = ('#007f00', False, False)
scintilla/string = ('#7f007f', False, False)
scintilla/number = ('#007f7f', False, False)
scintilla/instance = ('#000000', False, True)
spyder/name = Spyder
spyder/background = #ffffff
spyder/currentline = #f7ecf8
spyder/currentcell = #fdfdde
spyder/occurrence = #C2E3FA
spyder/ctrlclick = #0000ff
spyder/sideareas = #efefef
spyder/matched_p = #99ff99
spyder/unmatched_p = #ff9999
spyder/normal = ('#000000', False, False)
spyder/keyword = ('#0000ff', False, False)
spyder/magic = ('#0000ff', False, False)
spyder/builtin = ('#900090', False, False)
spyder/definition = ('#000000', True, False)
spyder/comment = ('#adadad', False, True)
spyder/string = ('#00aa00', False, False)
spyder/number = ('#800000', False, False)
spyder/instance = ('#924900', False, True)
spyder/dark/name = Spyder Dark
spyder/dark/background = #19232D
spyder/dark/currentline = #3a424a
spyder/dark/currentcell = #292d3e
spyder/dark/occurrence = #1A72BB
spyder/dark/ctrlclick = #179ae0
spyder/dark/sideareas = #222b35
spyder/dark/matched_p = #0bbe0b
spyder/dark/unmatched_p = #ff4340
spyder/dark/normal = ('#ffffff', False, False)
spyder/dark/keyword = ('#c670e0', False, False)
spyder/dark/magic = ('#c670e0', False, False)
spyder/dark/builtin = ('#fab16c', False, False)
spyder/dark/definition = ('#57d6e4', True, False)
spyder/dark/comment = ('#999999', False, False)
spyder/dark/string = ('#b0e686', False, True)
spyder/dark/number = ('#faed5c', False, False)
spyder/dark/instance = ('#ee6772', False, True)
zenburn/name = Zenburn
zenburn/background = #3f3f3f
zenburn/currentline = #333333
zenburn/currentcell = #2c2c2c
zenburn/occurrence = #1A72BB
zenburn/ctrlclick = #0000ff
zenburn/sideareas = #3f3f3f
zenburn/matched_p = #688060
zenburn/unmatched_p = #bd6e76
zenburn/normal = ('#dcdccc', False, False)
zenburn/keyword = ('#dfaf8f', True, False)
zenburn/magic = ('#dfaf8f', True, False)
zenburn/builtin = ('#efef8f', False, False)
zenburn/definition = ('#efef8f', False, False)
zenburn/comment = ('#7f9f7f', False, True)
zenburn/string = ('#cc9393', False, False)
zenburn/number = ('#8cd0d3', False, False)
zenburn/instance = ('#dcdccc', False, True)
solarized/light/name = Solarized Light
solarized/light/background = #fdf6e3
solarized/light/currentline = #f5efdB
solarized/light/currentcell = #eee8d5
solarized/light/occurrence = #C2E3FA
solarized/light/ctrlclick = #d33682
solarized/light/sideareas = #eee8d5
solarized/light/matched_p = #d6dabf
solarized/light/unmatched_p = #dc322f
solarized/light/normal = ('#657b83', False, False)
solarized/light/keyword = ('#859900', False, False)
solarized/light/magic = ('#859900', False, False)
solarized/light/builtin = ('#6c71c4', False, False)
solarized/light/definition = ('#268bd2', True, False)
solarized/light/comment = ('#93a1a1', False, True)
solarized/light/string = ('#2aa198', False, False)
solarized/light/number = ('#d33682', False, False)
solarized/light/instance = ('#b58900', False, True)
solarized/dark/name = Solarized Dark
solarized/dark/background = #002b36
solarized/dark/currentline = #083f4d
solarized/dark/currentcell = #073642
solarized/dark/occurrence = #1A72BB
solarized/dark/ctrlclick = #d33682
solarized/dark/sideareas = #073642
solarized/dark/matched_p = #586e75
solarized/dark/unmatched_p = #dc322f
solarized/dark/normal = ('#E1E1E1', False, False)
solarized/dark/keyword = ('#859900', False, False)
solarized/dark/magic = ('#859900', False, False)
solarized/dark/builtin = ('#6c71c4', False, False)
solarized/dark/definition = ('#268bd2', True, False)
solarized/dark/comment = ('#657b83', False, True)
solarized/dark/string = ('#2aa198', False, False)
solarized/dark/number = ('#d33682', False, False)
solarized/dark/instance = ('#b58900', False, True)
inkpot/name = Inkpot
inkpot/background = #1f1f27
inkpot/currentline = #2d2d44
inkpot/currentcell = #33333A
inkpot/occurrence = #1A72BB
inkpot/ctrlclick = #1f1f27
inkpot/sideareas = #2d2d44
inkpot/matched_p = #3672b5
inkpot/unmatched_p = #8b8bff
inkpot/normal = ('#cfbfad', False, False)
inkpot/keyword = ('#808bed', False, False)
inkpot/magic = ('#808bed', False, False)
inkpot/builtin = ('#87cefa', False, False)
inkpot/definition = ('#87cefa', False, False)
inkpot/comment = ('#cd8b00', False, False)
inkpot/string = ('#ffcd8b', False, False)
inkpot/number = ('#ffcd8b', False, False)
inkpot/instance = ('#cfbfad', False, False)
minimal/name = Minimal
minimal/background = #ffffff
minimal/currentline = #aaccff
minimal/currentcell = #E7F1FF
minimal/occurrence = #C2E3FA
minimal/ctrlclick = #05314d
minimal/sideareas = #aaccff
minimal/matched_p = #000000
minimal/unmatched_p = #efefff
minimal/normal = ('#000000', False, False)
minimal/keyword = ('#5c8198', False, False)
minimal/magic = ('#5c8198', False, False)
minimal/builtin = ('#000066', False, False)
minimal/definition = ('#5c8198', False, False)
minimal/comment = ('#334466', False, False)
minimal/string = ('#333333', False, False)
minimal/number = ('#333333', False, False)
minimal/instance = ('#566874', False, False)
nightlion/name = NightLion Aptana Theme
nightlion/background = #1e1e1e
nightlion/currentline = #505050
nightlion/currentcell = #323232
nightlion/occurrence = #1A72BB
nightlion/ctrlclick = #b3b5af
nightlion/sideareas = #505050
nightlion/matched_p = #3672b5
nightlion/unmatched_p = #364656
nightlion/normal = ('#e2e2e2', False, False)
nightlion/keyword = ('#8dcbe2', False, False)
nightlion/magic = ('#8dcbe2', False, False)
nightlion/builtin = ('#cae682', False, False)
nightlion/definition = ('#dfbe95', False, False)
nightlion/comment = ('#7f9f7f', False, False)
nightlion/string = ('#cc9393', False, False)
nightlion/number = ('#eab882', False, False)
nightlion/instance = ('#b3b784', False, False)
notepad++/name = Notepad++
notepad++/background = #ffffff
notepad++/currentline = #eeeeee
notepad++/currentcell = #D9D9D9
notepad++/occurrence = #C2E3FA
notepad++/ctrlclick = #800080
notepad++/sideareas = #eeeeee
notepad++/matched_p = #8000ff
notepad++/unmatched_p = #eeeeee
notepad++/normal = ('#8000ff', False, False)
notepad++/keyword = ('#0000ff', False, False)
notepad++/magic = ('#0000ff', False, False)
notepad++/builtin = ('#000080', False, False)
notepad++/definition = ('#ff00ff', False, False)
notepad++/comment = ('#008000', False, False)
notepad++/string = ('#808080', False, False)
notepad++/number = ('#ff8000', False, False)
notepad++/instance = ('#800080', False, False)
oblivion/name = Oblivion
oblivion/background = #1e1e1e
oblivion/currentline = #2a2a2a
oblivion/currentcell = #323232
oblivion/occurrence = #1A72BB
oblivion/ctrlclick = #ccdf32
oblivion/sideareas = #2a2a2a
oblivion/matched_p = #de7878
oblivion/unmatched_p = #000000
oblivion/normal = ('#d8d8d8', False, False)
oblivion/keyword = ('#ffffff', False, False)
oblivion/magic = ('#ffffff', False, False)
oblivion/builtin = ('#de7878', False, False)
oblivion/definition = ('#ffffff', False, False)
oblivion/comment = ('#c7dd0c', False, False)
oblivion/string = ('#ffc600', False, False)
oblivion/number = ('#7fb347', False, False)
oblivion/instance = ('#bed6ff', False, False)
obsidian/name = Obsidian
obsidian/background = #293134
obsidian/currentline = #2f393c
obsidian/currentcell = #3C4346
obsidian/occurrence = #1A72BB
obsidian/ctrlclick = #7d8c93
obsidian/sideareas = #2f393c
obsidian/matched_p = #3672b5
obsidian/unmatched_p = #804000
obsidian/normal = ('#e0e2e4', False, False)
obsidian/keyword = ('#93c763', False, False)
obsidian/magic = ('#93c763', False, False)
obsidian/builtin = ('#678cb1', False, False)
obsidian/definition = ('#678cb1', False, False)
obsidian/comment = ('#7d8c93', False, False)
obsidian/string = ('#ec7600', False, False)
obsidian/number = ('#ffcd22', False, False)
obsidian/instance = ('#678cb1', False, False)
pastel/name = Pastel
pastel/background = #1f2223
pastel/currentline = #2f393c
pastel/currentcell = #454849
pastel/occurrence = #1A72BB
pastel/ctrlclick = #7d8c93
pastel/sideareas = #2f393c
pastel/matched_p = #3672b5
pastel/unmatched_p = #95bed8
pastel/normal = ('#e0e2e4', False, False)
pastel/keyword = ('#a57b61', False, False)
pastel/magic = ('#a57b61', False, False)
pastel/builtin = ('#678cb1', False, False)
pastel/definition = ('#678cb1', False, False)
pastel/comment = ('#7d8c93', False, False)
pastel/string = ('#c78d9b', False, False)
pastel/number = ('#c78d9b', False, False)
pastel/instance = ('#678cb1', False, False)
retta/name = Retta
retta/background = #000000
retta/currentline = #2a2a2a
retta/currentcell = #171717
retta/occurrence = #1A72BB
retta/ctrlclick = #83786e
retta/sideareas = #2a2a2a
retta/matched_p = #de7878
retta/unmatched_p = #527d5d
retta/normal = ('#f8e1aa', False, False)
retta/keyword = ('#e79e3c', True, False)
retta/magic = ('#e79e3c', True, False)
retta/builtin = ('#de6546', True, False)
retta/definition = ('#a4b0c0', False, False)
retta/comment = ('#83786e', False, False)
retta/string = ('#d6c248', False, False)
retta/number = ('#d6c248', False, False)
retta/instance = ('#de6546', False, False)
roboticket/name = Roboticket
roboticket/background = #f5f5f5
roboticket/currentline = #e0e0ff
roboticket/currentcell = #CCCCE8
roboticket/occurrence = #C2E3FA
roboticket/ctrlclick = #ad95af
roboticket/sideareas = #e0e0ff
roboticket/matched_p = #585858
roboticket/unmatched_p = #bdd8f2
roboticket/normal = ('#585858', False, False)
roboticket/keyword = ('#295f94', False, True)
roboticket/magic = ('#295f94', False, True)
roboticket/builtin = ('#ab2525', False, False)
roboticket/definition = ('#bc5a65', True, False)
roboticket/comment = ('#ad95af', False, True)
roboticket/string = ('#317ecc', False, False)
roboticket/number = ('#af0f91', False, False)
roboticket/instance = ('#566874', False, False)
sublime-monokai/extended/name = Sublime Text Monokai Extended
sublime-monokai/extended/background = #222222
sublime-monokai/extended/currentline = #2f2f2f
sublime-monokai/extended/currentcell = #363636
sublime-monokai/extended/occurrence = #1A72BB
sublime-monokai/extended/ctrlclick = #ffffff
sublime-monokai/extended/sideareas = #2f2f2f
sublime-monokai/extended/matched_p = #679116
sublime-monokai/extended/unmatched_p = #cc9900
sublime-monokai/extended/normal = ('#cfbfad', False, False)
sublime-monokai/extended/keyword = ('#ff007f', False, False)
sublime-monokai/extended/magic = ('#ff007f', False, False)
sublime-monokai/extended/builtin = ('#52e3f6', False, False)
sublime-monokai/extended/definition = ('#a7ec21', False, False)
sublime-monokai/extended/comment = ('#ffffff', False, False)
sublime-monokai/extended/string = ('#ece47e', False, False)
sublime-monokai/extended/number = ('#c48cff', False, False)
sublime-monokai/extended/instance = ('#cfbfad', False, False)
vibrant-ink/name = Vibrant Ink
vibrant-ink/background = #191919
vibrant-ink/currentline = #222220
vibrant-ink/currentcell = #2D2D2D
vibrant-ink/occurrence = #1A72BB
vibrant-ink/ctrlclick = #8c3fc8
vibrant-ink/sideareas = #222220
vibrant-ink/matched_p = #598c19
vibrant-ink/unmatched_p = #414c3b
vibrant-ink/normal = ('#ffffff', False, False)
vibrant-ink/keyword = ('#ec691e', False, False)
vibrant-ink/magic = ('#ec691e', False, False)
vibrant-ink/builtin = ('#9cf828', False, False)
vibrant-ink/definition = ('#f7c527', False, False)
vibrant-ink/comment = ('#8146a2', False, False)
vibrant-ink/string = ('#477488', False, False)
vibrant-ink/number = ('#477488', False, False)
vibrant-ink/instance = ('#357a8f', False, False)
custom_names = []

[snippet-completions]
erlang = {}
swift = {}
json = {}
kotlin = {}
r = {}
fortran = {}
bash = {}
typescript = {}
javascript = {}
scala = {}
haxe = {}
php = {}
cpp = {}
c# = {}
html = {}
go = {}
graphql = {}
julia = {}
java = {}
rust = {}
groovy = {}
ocaml = {}
css/less/sass = {}
elixir = {}

[run]
post_mortem = False
clear_namespace = False
console_namespace = False
interact = False
open_on_firstrun = False
default/interpreter/current = False
default/interpreter/dedicated = True
default/interpreter/systerm = False
default/wdir/use_script_directory = False
default/wdir/use_cwd_directory = True
default/wdir/use_fixed_directory = False
history = 20
open_at_least_once = False
```

</details>






I can't reproduce this problem.
Oij, not good. Anything I could help with? Running spyder with some special command line options? Adding some print statements in strategic places?

- I just checked and the double errors are still there.
- I also cloned the repository and started spyder with `python3 bootstrap.py`, set the linting options and guess what? No double errors.
- Then I deleted the existing configuration – no double errors displayed.
- Then I successively started to configure spyder to my liking. Still no double errors.
- Finally I set up my windows layout and – bingo! That's where the double errors started to appear again.

So here is how I could reproduce it:
1. Start spyder fresh without existing configuration.
2. Set `Preferences > Completion > Code style and formatting > [x] Enable code style linting`.
3. Split editor pane horizontally into two.
4. Exit spyder.
5. Start spyder.

Now I start to see double errors.
I just noticed, that this has the `Status: Awaiting Followup` tag. Which additional information do you need?

Resolving patch:
diff --git a/spyder/plugins/editor/widgets/codeeditor.py b/spyder/plugins/editor/widgets/codeeditor.py
--- a/spyder/plugins/editor/widgets/codeeditor.py
+++ b/spyder/plugins/editor/widgets/codeeditor.py
@@ -1282,7 +1282,13 @@ def _process_code_analysis(self, underline):
                                              data._selection(),
                                              underline_color=block.color)
             else:
-                data.code_analysis.append((source, code, severity, message))
+                # Don't append messages to data for cloned editors to avoid
+                # showing them twice or more times on hover.
+                # Fixes spyder-ide/spyder#15618
+                if not self.is_cloned:
+                    data.code_analysis.append(
+                        (source, code, severity, message)
+                    )
                 block.setUserData(data)
 
     # ------------- LSP: Completion ---------------------------------------


Test patch: