Skip to content

Beta version changelog

Carlos Cordoba edited this page Jul 27, 2019 · 214 revisions

Version 4.0dev

New features

Main Window

  • Add a dark theme for the entire interface.
  • Add a new Plots pane to browse all inline figures generated by the IPython console.
  • Several plugins were renamed to have a simpler interface:
    • Static code analysis to Code Analysis
    • File explorer to Files
    • Find in files to Find
    • History log to History
    • Project explorer to Project
  • Add a new action called Undock to the Options menu of every plugin. This action creates a separate window that only contains the plugin and can be moved to a different place of the screen or to a different monitor.
  • Add translation for Simplified Chinese.

Editor

  • Add code folding functionality.
  • Show code completions as you type.
  • Add autosave functionality to be able to recover unsaved files after a crash.
  • Add indentation guides. They can be activated under the Source menu.
  • Add a panel to show the current class and method/function where the cursor is placed, inspired by similar functionality present in Microsoft Visual Studio. It can activated under the Source menu.
  • Allow setting multiple line length indicators under Preferences > Editor > Display > Show vertical lines.
  • Add Ctrl+Alt+Shift+, and Ctrl+Alt+Shift+. shortcuts to go to the previous/next warning and error, respectively.
  • Allow scrolling past the end of the file. This can activated in Preferences > Editor > Display > Scroll past the end.
  • Add the ability to take into account code indentation and PEP 8 when adding and removing comment levels.
  • Add an option to convert end-of-line characters on save.
  • Add Ctrl+{ and Ctrl+_ shortcuts to split panels vertically and horizontally, respectively.
  • Add Alt+Shift+W shortcut to close the current split panel.
  • After pressing a quote or brace the current selection gets enclosed on it.
  • Add automatic docstring generation (parameters, return vals and exceptions raised) in Numpydoc and Googledoc formats.
  • Add an option to its context menu to sort files alphabetically.
  • Add the ability to reference issues on Gitlab (gl), Github (gh) and Bitbucket (bb) in comments or strings by using the convention {gl/gh/bb}:my-org/my-repo#123. You can also reference them by {gl/gh/bb}-123, if you previously set up an upstream or origin remote in your repo.

IPython console

  • Add menu options to start consoles in Pylab, Sympy and Cython modes.
  • Run cells through a function called runcell instead of pasting their contents directly to the console.

Variable Explorer

  • Add a new viewer to inspect any Python object in a tree-like view.
  • Add the ability to search for variable names and types.
  • Add support for Numpy object arrays.
  • Add MultiIndex display support to the DataFrame viewer.
  • Add support for all Pandas indexes.
  • Add support for sets.
  • Add an option to its context menu (the one you get with a mouse right-click) to resize columns to its contents.

Files

  • Add the possibility to associate different external applications to open specific file extensions (e.g. .txt files with Notepad++ or VSCode).
  • Add a context menu action called Open externally to all files to open them with the Operating System default program associated with the file type.
  • Add multi-select functionality (Ctrl/Shift+click).
  • Add the ability to copy/paste files and their absolute or relative paths.
  • Use special icons for different file types.
  • Add an option to open files and directories with a single click.

Outline

  • Show cells grouped in sections. Level 1 cells are defined by #%% (as before), level 2 cells by #%%%, level 3 cells by #%%%% and so on. With this new syntax, all n+1 cells will be conveniently grouped under n-level cells in the outline tree.
  • Add an option to sort files alphabetically. By default files are shown in the same order as in the Editor.
  • Add a default name for cells to encourage users to name them. This way cells can be more easily spotted in the outline tree.

API Changes

Major changes
  • Create one module per plugin in spyder.plugins and move there all widgets and utility modules used by that plugin. For example, spyder.widgets.sourcecode.codeeditor is now at spyder.plugins.editor.widgets.codeeditor.
  • Create the spyder.api module to expose a public API for external plugins.
  • Add a SpyderPlugin class to be able to create plugins without an associated graphical pane.
Minor changes
  • Remove the SpyderPluginMixin class. Its contents were added to BasePluginMixin and BasePluginWidgetMixin (in plugins/base.py).
  • Move SpyderDockWidget to widgets/dock.py.
  • Config pages of all plugins are now located in a separate module called spyder/plugins/<plugin>/confpage.py

Under the hood

  • Deprecate the use of debug_print and use the logging module instead.
  • Use the Language Server Protocol for code completion and linting in the Editor.
  • Increase minimal PyQt supported version to 5.6
Clone this wiki locally