<type>documentation</type>
<domain>preferences</domain>
<id>index</id>
<title>Preferences Reference</title>
<product>per+</product>

This chapter documents the entire set of available preferences for Wing
Pro.  Note that this includes preferences that are ignored and unused
in Wing Personal and Wing 101.

Most preferences can be set from the `Preferences GUI`__ but some users may 
wish to build preference files manually to control different instances
of Wing (see details in `Preferences Customization`__).

__ script:show_preferences_gui
__ ref:custom/preferences


User Interface
--------------

**Display Language**

The language to use for the user interface.  Either the default for this system, or set to a specific supported language.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Display Language <script:show_preferences_gui#prefname="main.display-language">`__
~~~


Internal Name:  ``main.display-language``


Data Specification:  ``[None, en, de, es, fr, ru]``


Default Value:  ``None``

**Include AI Translated Strings**

Controls whether to allow the use of unreviewed AI translations in the user interface.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Include AI Translated Strings <script:show_preferences_gui#prefname="main.enable-ai-translations">`__
~~~


Internal Name:  ``main.enable-ai-translations``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Display Mode**

Selects the overall display mode, either emulating the OS or using the specified light or dark display theme.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Display Mode <script:show_preferences_gui#prefname="gui.display-mode">`__
~~~


Internal Name:  ``gui.display-mode``


Data Specification:  ``[light, dark]``


Default Value:  ``dark``

**Light Theme**

The display theme for Wing's user interface when in light background mode.  All color preferences default to using colors from the theme, but can be overridden individually.  Additional themes can be defined and added to the 'palettes' sub-directory of the User Settings directory.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Light Theme <script:show_preferences_gui#prefname="gui.light-display-theme">`__
~~~


Internal Name:  ``gui.light-display-theme``


Data Specification:  ``[None or <type str>]``


Default Value:  ``wing-classic``

**Light Editor**

The light display theme for Wing's editor, either the same as the Light Theme or a selected theme.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Light Editor <script:show_preferences_gui#prefname="gui.light-editor-theme">`__
~~~


Internal Name:  ``gui.light-editor-theme``


Data Specification:  ``[None or <type str>]``


Default Value:  ``None``

**Dark Theme**

The display theme for Wing's user interface when in dark background mode.  All color preferences default to using colors from the theme, but can be overridden individually.  Additional themes can be defined and added to the 'palettes' sub-directory of the User Settings directory.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Dark Theme <script:show_preferences_gui#prefname="gui.dark-display-theme">`__
~~~


Internal Name:  ``gui.dark-display-theme``


Data Specification:  ``[None or <type str>]``


Default Value:  ``one-dark``

**Dark Editor**

The dark display theme for Wing's editor, either the same as the Dark Theme or a selected theme.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Dark Editor <script:show_preferences_gui#prefname="gui.dark-editor-theme">`__
~~~


Internal Name:  ``gui.dark-editor-theme``


Data Specification:  ``[None or <type str>]``


Default Value:  ``None``

**Enable Tooltips**

Controls whether or not tooltips containing help are shown when the mouse hovers over areas of the user interface.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Enable Tooltips <script:show_preferences_gui#prefname="gui.enable-tooltips">`__
~~~


Internal Name:  ``gui.enable-tooltips``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Tooltip Delay**

The time in seconds to wait after the mouse cursor stops moving before any tooltips are displayed.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Tooltip Delay <script:show_preferences_gui#prefname="gui.tooltips-delay">`__
~~~


Internal Name:  ``gui.tooltips-delay``


Data Specification:  ``<type int>``


Default Value:  ``0.5``


* **Layout**

**Windowing Policy**

Policy to use for window creation:  Combined Toolbox and Editor mode places toolboxes into editor windows, and Separate Toolbox mode creates separate toolbox windows.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Layout > Windowing Policy <script:show_preferences_gui#prefname="gui.windowing-policy">`__
~~~


Internal Name:  ``gui.windowing-policy``


Data Specification:  ``[combined-window, separate-toolbox-window]``


Default Value:  ``combined-window``

**Show Menubar**

Whether to show the menu bar in the window.  When this is False, a menu icon is added to the top right.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Layout > Show Menubar <script:show_preferences_gui#prefname="guimgr.show-menu-bar">`__
~~~


Internal Name:  ``guimgr.show-menu-bar``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Show Editor Tabs**

Controls whether or not Wing shows tabs for switching between editors.  When false, a popup menu is used instead.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Layout > Show Editor Tabs <script:show_preferences_gui#prefname="gui.use-notebook-editors">`__
~~~


Internal Name:  ``gui.use-notebook-editors``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Presentation Mode**

Controls whether Wing runs in presentation mode, which magnifies the user interface.  Wing must be restarted before this value takes effect.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Layout > Presentation Mode <script:show_preferences_gui#prefname="main.presentation-mode">`__
~~~


Internal Name:  ``main.presentation-mode``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Presentation Mode Scale Factor**

The amount by which to increase UI size when presentation mode is enabled.  Wing must be restarted before this value takes effect.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Layout > Presentation Mode Scale Factor <script:show_preferences_gui#prefname="main.presentation-scale-factor">`__
~~~


Internal Name:  ``main.presentation-scale-factor``


Data Specification:  ``<type float>``


Default Value:  ``2.0``


* **Toolbar**

**Show Toolbar**

Whether toolbar is shown in any window.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Toolbar > Show Toolbar <script:show_preferences_gui#prefname="gui.show-toolbar">`__
~~~


Internal Name:  ``gui.show-toolbar``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Toolbar Size**

Sets size of the toolbar icons.  By default, adjusts according to available space.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Toolbar > Toolbar Size <script:show_preferences_gui#prefname="gui.toolbar-icon-size">`__
~~~


Internal Name:  ``gui.toolbar-icon-size``


Data Specification:  ``[small, medium, large, xlarge, text-height, default]``


Default Value:  ``auto``

**Toolbar Style**

Select style of toolbar icons to use.  By default, adjusts according to available space.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Toolbar > Toolbar Style <script:show_preferences_gui#prefname="gui.toolbar-icon-style">`__
~~~


Internal Name:  ``gui.toolbar-icon-style``


Data Specification:  ``[auto, icon-only, text-only, text-below, text-right, default]``


Default Value:  ``auto``

**Groups Shown**

Controls which groups of tools will be shown in the toolbar.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Toolbar > Groups Shown <script:show_preferences_gui#prefname="guimgr.toolbar-groups">`__
~~~


Internal Name:  ``guimgr.toolbar-groups``


Data Specification:  ``[list of: [file, clip, select, batch-search, search, diff, bookmark, indent, test, vcs, proj, debug]]``


Default Value:  ``['file', 'clip', 'select', 'search', 'diff', 'indent', 'proj', 'debug']``

**Custom Items**

Extra items to add to the tool bar.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Toolbar > Custom Items <script:show_preferences_gui#prefname="guimgr.toolbar-custom-items">`__
~~~


Internal Name:  ``guimgr.toolbar-custom-items``


Data Specification:  ``[tuple of: [tuple length 3 of: <icon spec>, <type str>, <type str>]]``


Default Value:  ``()``

**Primary Icon Color**

Primary color for icons

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Toolbar > Primary Icon Color <script:show_preferences_gui#prefname="gui.icon-color-primary">`__
~~~


Internal Name:  ``gui.icon-color-primary``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Secondary Icon Color**

Secondary color for icons

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Toolbar > Secondary Icon Color <script:show_preferences_gui#prefname="gui.icon-color-secondary">`__
~~~


Internal Name:  ``gui.icon-color-secondary``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Tertiary Icon Color**

Tertiary color for icons

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Toolbar > Tertiary Icon Color <script:show_preferences_gui#prefname="gui.icon-color-tertiary">`__
~~~


Internal Name:  ``gui.icon-color-tertiary``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Quaternary Icon Color**

Quaternary color for icons

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Toolbar > Quaternary Icon Color <script:show_preferences_gui#prefname="gui.icon-color-quaternary">`__
~~~


Internal Name:  ``gui.icon-color-quaternary``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Quinary Icon Color**

Quinary color for icons

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Toolbar > Quinary Icon Color <script:show_preferences_gui#prefname="gui.icon-color-quinary">`__
~~~


Internal Name:  ``gui.icon-color-quinary``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Senary Icon Color**

Senary color for icons

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Toolbar > Senary Icon Color <script:show_preferences_gui#prefname="gui.icon-color-senary">`__
~~~


Internal Name:  ``gui.icon-color-senary``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``


* **Fonts**

**Display Font/Size**

The base font and size to use for the user interface's menus and labels

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Fonts > Display Font/Size <script:show_preferences_gui#prefname="gui.qt-display-font">`__
~~~


Internal Name:  ``gui.qt-display-font``


Data Specification:  ``[None or <type str>]``


Default Value:  ``None``

**Editor Font/Size**

The base font and size to use for source code shown in the editor, Python Shell, Debug Console, Source Assistant, and other tools that display source code.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Fonts > Editor Font/Size <script:show_preferences_gui#prefname="edit.qt-display-font">`__
~~~


Internal Name:  ``edit.qt-display-font``


Data Specification:  ``[None or <type str>]``


Default Value:  ``None``

**Editor Line Spacing**

Amount of extra spacing to allocate around lines in the editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Fonts > Editor Line Spacing <script:show_preferences_gui#prefname=".edit.line-spacing">`__
~~~


Internal Name:  ``.edit.line-spacing``


Data Specification:  ``<type int>``


Default Value:  ``0``


* **Keyboard**

**Personality**

Selects the overall editor personality, optionally to emulate another commonly used editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Keyboard > Personality <script:show_preferences_gui#prefname="edit.personality">`__
~~~


Internal Name:  ``edit.personality``


Data Specification:  ``[normal, brief, eclipse, emacs, matlab, vi, visualstudio]``


Default Value:  ``normal``

**Tab Key Action**

Defines the action of the Tab key, one of:  "Default for Personality" to emulate the selected Keyboard Personality.  "Indent To Match" to indent the current line or selected line(s) to match the context, "Move to Next Tab Stop" to enter indentation characters so the caret reaches the next tab stop, "Indent Region" to increase the indentation of the selected line(s) by one level, or "Insert Tab Character" to insert a Tab character (chr(9)). For Python files, "Smart Tab" is an option that varies the tab key action according to the location of the caret within the line.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Keyboard > Tab Key Action <script:show_preferences_gui#prefname="edit.tab-key-action">`__
~~~


Internal Name:  ``edit.tab-key-action``


Data Specification:  ``[dict; keys: <type str>, values: <type str>]``


Default Value:  ``{'*': '--default--', 'text/x-python': '--default--'}``

**Smart Tab End of Line Indents**

Select type of indentation that Smart Tab will place at the end of a line.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Keyboard > Smart Tab End of Line Indents <script:show_preferences_gui#prefname="edit.smart-tab-eol-indents">`__
~~~


Internal Name:  ``edit.smart-tab-eol-indents``


Data Specification:  ``[None, 1, 2, 3, 4]``


Default Value:  ``4``

**Use Alt Key Only for Underlined Alt- Accelerators**

Specifies whether Alt keystrokes should be used only for accelerators. When enabled, Alt-key presses will never be used for key bindings and pressing the Alt key alone will shift focus to the menu bar. This preference is ignored when Wing is running with native macOS display style, since in that case Alt- accelerators do not exist.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Keyboard > Use Alt Key Only for Underlined Alt- Accelerators <script:show_preferences_gui#prefname="gui.qt-os-alt-for-accelerators">`__
~~~


Internal Name:  ``gui.qt-os-alt-for-accelerators``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Always Underline Alt- Accelerators**

Whether to underline Alt key accelerators even if the Alt has not been pressed.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Keyboard > Always Underline Alt- Accelerators <script:show_preferences_gui#prefname="main.always-underline-mnemonics">`__
~~~


Internal Name:  ``main.always-underline-mnemonics``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Custom Key Bindings**

Override key bindings in the keymap.  To enter the key, place focus on the entry area and type the key combination desired.  The command is one of those documented in the user manual's Command Reference, or the name of any user scripts that have been loaded into the IDE.  Leave the command name blank to remove the default binding for a key (this is useful when adding multi-key bindings that conflict with a default).

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Keyboard > Custom Key Bindings <script:show_preferences_gui#prefname="gui.keymap-override">`__
~~~


Internal Name:  ``gui.keymap-override``


Data Specification:  ``[dict; keys: <type str>, values: <type str>]``


Default Value:  ``{}``

**Typing Group Timeout**

Sets the timeout in seconds to use for typing, after which keys pressed are considered a separate group of characters.  This is used for typing-to-select on lists and in other GUI areas.  Before the timeout subsequent keys are added to previous ones to refine the selection during keyboard navigation.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Keyboard > Typing Group Timeout <script:show_preferences_gui#prefname="gui.typing-group-timeout">`__
~~~


Internal Name:  ``gui.typing-group-timeout``


Data Specification:  ``<type float>, <type int>``


Default Value:  ``1``

**VI Mode Ctrl-C/X/V**

Controls the behavior of the Ctrl-X/C/V key bindings in vi mode.  Either always use these for cut/copy/paste, use them for vi native actions such as initiate-numeric-repeat and start-select-rectangle, or use the default by system (clipboard on win32 and other commands elsewhere).

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Keyboard > VI Mode Ctrl-C/X/V <script:show_preferences_gui#prefname="vi-mode.clipboard-bindings">`__
~~~


Internal Name:  ``vi-mode.clipboard-bindings``


Data Specification:  ``[system-default, clipboard, other]``


Default Value:  ``system-default``


* **Perspectives**

**Auto-save Perspectives**

Selects whether to auto-save perspectives when switching to another perspective. Can always auto-save, never auto-save, prompt each time a perspective is left, or auto-save as configured on a per-perspective basis.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Perspectives > Auto-save Perspectives <script:show_preferences_gui#prefname="main.perspective-auto-save">`__
~~~


Internal Name:  ``main.perspective-auto-save``


Data Specification:  ``[tuple length 2 of: [always, never, prompt, choose], <type str>]``


Default Value:  ``always``

**Shared Perspective File**

Selects the file to use for storing and retrieving shared perspectives. By default (when value is None) the file 'perspectives' in the user settings directory is used.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Perspectives > Shared Perspective File <script:show_preferences_gui#prefname="main.perspective-shared-file">`__
~~~


Internal Name:  ``main.perspective-shared-file``


Data Specification:  ``[one of: <type NoneType>, <type str>]``


Default Value:  ``None``


* **Console Keys**

**Send Keys Directly to Console Tools**

Send keys directly to console tools instead of processing them through the key binding system.  When disabled, key bindings are applied as in other tools.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Console Keys > Send Keys Directly to Console Tools <script:show_preferences_gui#prefname="gui.console-send-keys-directly">`__
~~~


Internal Name:  ``gui.console-send-keys-directly``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**    Use Ctrl+Shift+ For Ctrl+ Bindings**

Look up key bindings that include Ctrl+Shift+ when a console tool has keyboard focus.  If no binding is found, the Shift modifier is removed and the lookup is retried.  For example, Ctrl+Shift+C finds the copy command (normally bound to Ctrl+C).

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Console Keys >     Use Ctrl+Shift+ For Ctrl+ Bindings <script:show_preferences_gui#prefname="gui.console-lookup-shift-ctrl">`__
~~~


Internal Name:  ``gui.console-lookup-shift-ctrl``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**    Console Key Bindings**

Key bindings used when a console tool has keyboard focus.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Console Keys >     Console Key Bindings <script:show_preferences_gui#prefname="gui.console-keymap-override">`__
~~~


Internal Name:  ``gui.console-keymap-override``


Data Specification:  ``[dict; keys: <type str>, values: <type str>]``


Default Value:  ``{}``

**Skip Console Keys Hint**

When set, the console key bindings hint dialog is not shown when a console tool is started.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Console Keys > Skip Console Keys Hint <script:show_preferences_gui#prefname="gui.console-keys-hint-suppressed">`__
~~~


Internal Name:  ``gui.console-keys-hint-suppressed``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``


* **Other**

**Show Splash Screen**

Controls whether or not the splash screen is shown at startup.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Other > Show Splash Screen <script:show_preferences_gui#prefname="main.show-splash-screen">`__
~~~


Internal Name:  ``main.show-splash-screen``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**When Launching Wing**

Controls whether Wing tries to reuse an existing running instance of the IDE when it is launched again.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Other > When Launching Wing <script:show_preferences_gui#prefname="main.instance-reuse-policy">`__
~~~


Internal Name:  ``main.instance-reuse-policy``


Data Specification:  ``[None, reuse, new]``


Default Value:  ``None``

**Icon and window scale factor**

Scale factor for icons, windows, and other graphical elements other than fonts.  Can either be a single number or a ; (semicolon) separated list of per-screen scale factors in the format used by the QT_SCREEN_SCALE_FACTORS environment variable.  This has no effect if the QT_SCREEN_SCALE_FACTORS environment variable is set before Wing is started Wing must be restarted before this value takes effect.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Other > Icon and window scale factor <script:show_preferences_gui#prefname="main.non-font-scale-factor">`__
~~~


Internal Name:  ``main.non-font-scale-factor``


Data Specification:  ``<type str>``


Default Value:  ``""``

**Suggest icon and window scale factor based on font size**

Whether to suggest per-screen scale factors at startup, based on inspection of font size on each attached display.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Other > Suggest icon and window scale factor based on font size <script:show_preferences_gui#prefname="main.suggest-non-font-scale-factor">`__
~~~


Internal Name:  ``main.suggest-non-font-scale-factor``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Auto-Focus Tools**

Controls whether to automatically move keyboard focus from the editor to tools when they are revealed.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Other > Auto-Focus Tools <script:show_preferences_gui#prefname="gui.auto-focus-tools">`__
~~~


Internal Name:  ``gui.auto-focus-tools``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Case Sensitive Sorting**

Controls whether names are sorted case sensitively (with all caps preceding small letters) or case insensitively

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Other > Case Sensitive Sorting <script:show_preferences_gui#prefname="gui.sort-case-sensitive">`__
~~~


Internal Name:  ``gui.sort-case-sensitive``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Always Use Full Path in Tooltips**

Enable to always show the full path of a file name in the tooltips shown from the editor tabs and file selection menus.  When disabled, the configured Source Title Style is used instead.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Other > Always Use Full Path in Tooltips <script:show_preferences_gui#prefname="gui.full-path-in-tooltips">`__
~~~


Internal Name:  ``gui.full-path-in-tooltips``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``


* **Advanced**

**Max Error Log Size**

The number of bytes at which the IDE log file (USER_SETTINGS_DIR/ide.log) is truncated.  This file can be sent to technical support to help diagnose problems with the IDE.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Advanced > Max Error Log Size <script:show_preferences_gui#prefname="main.max-error-log-size">`__
~~~


Internal Name:  ``main.max-error-log-size``


Data Specification:  ``[from 10000 to 10000000]``


Default Value:  ``500000``

**Shared File Sets Repository**

Selects the file to use for storing and retrieving shared named files sets. By default (when value is None) the file 'filesets' in the user settings directory is used.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Advanced > Shared File Sets Repository <script:show_preferences_gui#prefname="main.fileset-shared-file">`__
~~~


Internal Name:  ``main.fileset-shared-file``


Data Specification:  ``[one of: <type NoneType>, <type str>]``


Default Value:  ``None``

**Key Map File**

Defines location of the keymap override file.  Use None for default according to configured editor personality.  See the Wing Manual for details on building your keymap override file -- in general this is used only in development or debugging keymaps; use the keymap-override preference instead for better tracking across Wing versions.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Advanced > Key Map File <script:show_preferences_gui#prefname="gui.keymap">`__
~~~


Internal Name:  ``gui.keymap``


Data Specification:  ``[None or <type str>]``


Default Value:  ``None``

**Auto-check for Product Updates**

Automatically check for updates at startup by connecting to wingware.com. Updates are checked every three days, or more often for prerelease versions.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Advanced > Auto-check for Product Updates <script:show_preferences_gui#prefname="main.auto-check-updates">`__
~~~


Internal Name:  ``main.auto-check-updates``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Submit Usage Stats**

Allow submitting a log of which features you use to Wingware.  This is done periodically at startup and also when you submit bug reports, feedback, or check for updates.  The data provided is held confidential, used only for technical support and planning future development, and can be seen in the file USER_SETTINGS_DIR/stats.log

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Advanced > Submit Usage Stats <script:show_preferences_gui#prefname="main.submit-usage-stats">`__
~~~


Internal Name:  ``main.submit-usage-stats``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Show Support+Upgrades Reminders**

Show a reminder when Support+Upgrades for the active license is expired or will expire soon.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Advanced > Show Support+Upgrades Reminders <script:show_preferences_gui#prefname="main.monitor-support-upgrades">`__
~~~


Internal Name:  ``main.monitor-support-upgrades``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Show Discount Offers**

Controls whether Wing will periodically show discount offers.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Advanced > Show Discount Offers <script:show_preferences_gui#prefname="main.show-offers">`__
~~~


Internal Name:  ``main.show-offers``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Use Automatic Screen Scale Factors**

Automatically set scale factor based on screen dpi.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `User Interface > Advanced > Use Automatic Screen Scale Factors <script:show_preferences_gui#prefname=".main.set-auto-screen-scale-factor">`__
~~~


Internal Name:  ``.main.set-auto-screen-scale-factor``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``


Projects
--------

**Auto-reopen Last Project**

Controls whether most recent project is reopened at startup, in the absence of any other project on the command line.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Projects > Auto-reopen Last Project <script:show_preferences_gui#prefname="main.auto-reopen-last-project">`__
~~~


Internal Name:  ``main.auto-reopen-last-project``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Close Files with Project**

Controls whether any files open in an editor are also closed when a project file is closed

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Projects > Close Files with Project <script:show_preferences_gui#prefname="proj.close-also-windows">`__
~~~


Internal Name:  ``proj.close-also-windows``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Open Projects as Text**

Controls whether project files are opened as project or as text when opened from the File menu.  This does not affect opening from the Project menu.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Projects > Open Projects as Text <script:show_preferences_gui#prefname="gui.open-projects-as-text">`__
~~~


Internal Name:  ``gui.open-projects-as-text``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Confirm Drag Copy/Move**

Controls whether or not the IDE will confirm file copy/move operations initiated by dragging items around on the Project view.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Projects > Confirm Drag Copy/Move <script:show_preferences_gui#prefname="proj.confirm-file-drags">`__
~~~


Internal Name:  ``proj.confirm-file-drags``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Warn About Invalid Python Executable**

Whether to check the Python Executable when a project is opened and show a warning dialog if the configuration is invalid.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Projects > Warn About Invalid Python Executable <script:show_preferences_gui#prefname="proj.check-python-on-project-open">`__
~~~


Internal Name:  ``proj.check-python-on-project-open``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``


* **Context Menu**

**Groups Shown**

Controls which groups of menu items will be shown in the Project tool's context menu.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Projects > Context Menu > Groups Shown <script:show_preferences_gui#prefname="proj.context-menu-groups">`__
~~~


Internal Name:  ``proj.context-menu-groups``


Data Specification:  ``[tuple of: [clip, nav, debug, vcs, proj, file, script]]``


Default Value:  ``['clip', 'nav', 'debug', 'vcs', 'proj', 'file', 'script']``

**Custom Items**

Extra menu items to add to the Project tool context menu.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Projects > Context Menu > Custom Items <script:show_preferences_gui#prefname="proj.context-menu-custom-items">`__
~~~


Internal Name:  ``proj.context-menu-custom-items``


Data Specification:  ``[tuple of: [tuple length 2 of: <type str>, <type str>]]``


Default Value:  ``()``


* **Containers**

**Warn Before Container Configuration**

Controls whether to show a warning before editing a container configuration or stopping a container that is currently in use.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Projects > Containers > Warn Before Container Configuration <script:show_preferences_gui#prefname="main.show-container-config-warning">`__
~~~


Internal Name:  ``main.show-container-config-warning``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Notify Container Configuration Change**

Controls whether to show a notice after a change in Project Properties results in a change to the effective container configuration.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Projects > Containers > Notify Container Configuration Change <script:show_preferences_gui#prefname="main.show-container-config-changed-notice">`__
~~~


Internal Name:  ``main.show-container-config-changed-notice``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**When Container Image Changes**

Controls what action to take if the container image for a running container instance is rebuilt or changes.  Auto-restarting instances will terminate all debug, test, OS Command, Python Shell processes on the container without confirmation.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Projects > Containers > When Container Image Changes <script:show_preferences_gui#prefname="main.container-image-changed-policy">`__
~~~


Internal Name:  ``main.container-image-changed-policy``


Data Specification:  ``[auto-restart, leave-running, prompt]``


Default Value:  ``None``

**Warn Before Cluster Configuration**

Controls whether to show a warning before editing a cluster configuration or stopping a cluster that is currently in use.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Projects > Containers > Warn Before Cluster Configuration <script:show_preferences_gui#prefname="main.show-cluster-config-warning">`__
~~~


Internal Name:  ``main.show-cluster-config-warning``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Notify Cluster Configuration Change**

Controls whether to show a notice when a cluster configuration is changed, causing the cluster to be terminated and restarted.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Projects > Containers > Notify Cluster Configuration Change <script:show_preferences_gui#prefname="main.show-cluster-config-changed-notice">`__
~~~


Internal Name:  ``main.show-cluster-config-changed-notice``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**When Cluster Image Changes**

Controls what action to take if container images used in a running cluster are rebuilt or change.  Auto-restarting the cluster will terminate without confirmation all in-cluster debug, unit test, OS Command, Python Shell processes.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Projects > Containers > When Cluster Image Changes <script:show_preferences_gui#prefname="main.cluster-image-changed-policy">`__
~~~


Internal Name:  ``main.cluster-image-changed-policy``


Data Specification:  ``[auto-restart, leave-running, prompt]``


Default Value:  ``None``

**Show Environment Warning**

Controls whether to show a warning when a project that uses a container or cluster specifies a non-default environment.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Projects > Containers > Show Environment Warning <script:show_preferences_gui#prefname="main.show-container-env-warning">`__
~~~


Internal Name:  ``main.show-container-env-warning``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``


Files
-----

**Auto-Save Files Before Debug or Execute**

Controls whether or not all edited files are saved without asking before a debug run, before starting unit tests, or before a file or build process is executed.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > Auto-Save Files Before Debug or Execute <script:show_preferences_gui#prefname="gui.auto-save-before-action">`__
~~~


Internal Name:  ``gui.auto-save-before-action``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Auto-Save Files When Wing Loses Focus**

Controls whether or not all edited files are saved without asking when Wing loses the focus to some other application.  This saves all named files and ignores any untitled editors, since those cannot be saved without prompting for a name.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > Auto-Save Files When Wing Loses Focus <script:show_preferences_gui#prefname="gui.auto-save-when-loses-focus">`__
~~~


Internal Name:  ``gui.auto-save-when-loses-focus``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Warn When Editing Standard Library or Site Packages**

Whether to warn when a non-project file is edited, in order to reduce the chances of accidentally changing files in site-packages or other libraries.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > Warn When Editing Standard Library or Site Packages <script:show_preferences_gui#prefname="edit.non-project-files-edit-warning">`__
~~~


Internal Name:  ``edit.non-project-files-edit-warning``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Default Directory Policy**

Defines how Wing determines the starting directory to use when prompting for a file name:  Either based on location of the resource at current focus, location of the current project home directory, the last directory visited for file selection, the current directory at startup (or selected since), or always the specific fixed directory entered here.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > Default Directory Policy <script:show_preferences_gui#prefname="main.start-dir-policy">`__
~~~


Internal Name:  ``main.start-dir-policy``


Data Specification:  ``[tuple length 2 of: [current-focus, current-project, recent-directory, current-directory, selected-directory], <type str>]``


Default Value:  ``('current-focus', '')``

**Title Style**

Format used for titles of source files:  Use Base Name Only to display just the file name, Prepend Relative Path to use partial relative path from the project file location or configured Project Home Directory, Append Relative Path to instead append the relative path after the file namePrepend Full Path to use full path, or Append Full Path to instead append the fullpath after the file name.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > Title Style <script:show_preferences_gui#prefname="gui.source-title-style">`__
~~~


Internal Name:  ``gui.source-title-style``


Data Specification:  ``[basename, prepend-relative, append-relative, prepend-fullpath, append-fullpath]``


Default Value:  ``append-relative``

**Show Hostname in Titles**

Show the remote host name in all basename-only filenames used in titles.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > Show Hostname in Titles <script:show_preferences_gui#prefname="gui.include-host-in-titles">`__
~~~


Internal Name:  ``gui.include-host-in-titles``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Default Encoding**

The default encoding to use for text files opened in the source editor and other tools, when an encoding for that file cannot be determined by reading the file.  Other encodings may also be tried.  This also sets the encoding to use for newly created files.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > Default Encoding <script:show_preferences_gui#prefname="edit.default-encoding">`__
~~~


Internal Name:  ``edit.default-encoding``


Data Specification:  ``[None or [None, utf_16, utf_16_be, utf_16_le, utf_7, utf_8, iso8859_6, iso8859_13, iso8859_4, iso8859_14, iso8859_2, iso8859_5, iso8859_3, iso8859_7, iso8859_8, iso8859_10, iso8859_9, iso8859_15, latin_1, cp1256, cp864, cp1257, cp775, cp863, cp1250, cp852, mac_latin2, big5hkscs, gb18030, gb2312, gbk, hz, big5, cp950, cp1251, cp855, mac_cyrillic, cp865, ascii, cp1253, cp737, cp869, cp875, mac_greek, cp1255, cp424, cp856, cp862, cp861, mac_iceland, cp932, euc_jis_2004, euc_jisx0213, euc_jp, iso_2022_jp, iso_2022_jp_1, iso_2022_jp_2, iso_2022_jp_2004, iso_2022_jp_3, iso_2022_jp_ext, shift_jis, shift_jis_2004, shift_jisx0213, cp949, iso_2022_kr, johab, cp860, koi8_r, cp874, cp1026, cp1254, cp857, mac_turkish, cp437, cp037, koi8_u, cp1006, cp1258, cp1140, cp1252, cp500, cp850, mac_roman]]``


Default Value:  ``None``

**New File EOL**

Default end-of-line to use.  Wing matches existing line endings in non-blank files and uses this preference only when a file contains no end-of-line characters.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > New File EOL <script:show_preferences_gui#prefname="edit.new-file-eol-style">`__
~~~


Internal Name:  ``edit.new-file-eol-style``


Data Specification:  ``[lf, cr, crlf]``


Default Value:  ``lf``

**New File Extension**

Default file extension for newly created files

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > New File Extension <script:show_preferences_gui#prefname="edit.new-file-extension">`__
~~~


Internal Name:  ``edit.new-file-extension``


Data Specification:  ``<type str>``


Default Value:  ``.py``

**Max Recent Items**

Maximum number of items to display in the Recent menus.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > Max Recent Items <script:show_preferences_gui#prefname="gui.max-recent-files">`__
~~~


Internal Name:  ``gui.max-recent-files``


Data Specification:  ``[from 3 to 200]``


Default Value:  ``20``

**Maximum File Size (MB)**

Maximum size of files that Wing will try to open, in MB.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > Maximum File Size (MB) <script:show_preferences_gui#prefname="gui.max-file-size">`__
~~~


Internal Name:  ``gui.max-file-size``


Data Specification:  ``[from 1 to 100000]``


Default Value:  ``50``


* **File Types**

**Extra File Types**

This is a map from file extension or wildcard to mime type.  It adds additional file type mappings to those built into Wing.  File extensions can be specified alone without dot or wildcard, for example "xcf" or using wildcards containing "*" and/or "?", for example "Makefile*". The mime type to use for Python files is "text/x-python".

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > File Types > Extra File Types <script:show_preferences_gui#prefname="main.extra-mime-types">`__
~~~


Internal Name:  ``main.extra-mime-types``


Data Specification:  ``[dict; keys: <type str>, values: [text/x-asn1, text/x-abaqus, text/x-ada, text/x-conf, text/x-ave, text/x-baan, text/x-bash, text/x-bullant, text/x-c-source, text/x-cpp-source, text/x-caml, text/x-cmake, text/x-idl, text/css, text/x-csv, text/x-coffee, text/x-cython, text/x-d, text/x-diff, text/x-django, text/x-docbook, text/x-dos-batch, text/x-escript, text/x-eiffel, text/x-erlang, text/x-errorlist, text/x-forth, text/x-fortran, text/x-po, text/x-hss, text/html, text/x-haskell, text/x-inno-setup, application/json, text/x-java-source, text/x-javascript, application/x-tex, text/x-lot, text/x-less, text/x-lisp, text/x-lout, text/x-lua-source, text/x-mmixal, text/x-ms-idl, text/x-ms-makefile, text/x-makefile, text/x-mako, text/x-markdown, text/x-asm, text/x-matlab, text/x-metaport, text/x-mysql, text/x-nncrontab, text/x-nsis, text/x-nix, text/x-octave, text/x-php-source, text/x-pl-sql, text/x-pov, text/x-pascal, text/x-perl, text/plain, text/postscript, text/x-properties, text/x-python, text/x-python-interface, text/x-qss, text/x-r, text/x-rc, text/x-ruby, text/x-rust, text/x-scss, text/x-sql, text/x-scriptol, text/x-smalltalk, text/x-spice, text/x-tcl, text/x-toml, text/x-vhdl, text/x-vxml, text/x-verilog, text/x-vb-source, text/x-xcode, text/xml, text/x-yaml, text/x-zope-pt]]``


Default Value:  ``{}``

**File Filters**

Defines file filters to apply to file names for inclusion and exclusion from a larger set (such as scanned disk files or all project files).

Each filter is named and contains one list of inclusion patterns and one list of exclusion patterns.  The patterns can be a wildcard on the file name, wildcard on a directory name, or a mime type name.

 Only a single pattern needs to be matched for inclusion or exclusion.  Exclusion patterns take precedence over inclusion patterns, so any match on an exclusion pattern will always exclude a file from the selected set.  Filters are used in constraining search, adding project files, and for other operations on collections of files.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > File Types > File Filters <script:show_preferences_gui#prefname="main.file-filters">`__
~~~


Internal Name:  ``main.file-filters``


Data Specification:  ``[file filters]``


Default Value:  ``{'Python Files': ({('mime-type', 'text/x-python'), ('mime-type', 'text/x-cython')}, {('wildcard-filename', '*~'), ('wildcard-directory', '.vscode'), ('wildcard-directory', '_svn'), ('wildcard-directory', '.svn'), ('wildcard-filename', '*.svn-base'), ('wildcard-filename', '#*#'), ('wildcard-filename', '/.coverage'), ('wildcard-directory', '.hgcheck'), ('wildcard-filename', '.#*'), ('wildcard-filename', '.DS_Store'), ('wildcard-directory', '.venv'), ('wildcard-directory', '.git'), ('wildcard-directory', '.xvpics'), ('wildcard-filename', '.hgtags'), ('wildcard-directory', 'CVS'), ('wildcard-directory', '.hg'), ('wildcard-filename', '*.orig'), ('wildcard-filename', '*.swp'), ('wildcard-directory', '.*cache'), ('wildcard-directory', '.bzr'), ('wildcard-directory', '__pycache__')}), 'C/C++ Files': ({('mime-type', 'text/x-cpp-source'), ('mime-type', 'text/x-c-source')}, {('wildcard-filename', '*~'), ('wildcard-directory', '.vscode'), ('wildcard-directory', '_svn'), ('wildcard-directory', '.svn'), ('wildcard-filename', '*.svn-base'), ('wildcard-filename', '#*#'), ('wildcard-filename', '/.coverage'), ('wildcard-directory', '.hgcheck'), ('wildcard-filename', '.#*'), ('wildcard-filename', '.DS_Store'), ('wildcard-directory', '.venv'), ('wildcard-directory', '.git'), ('wildcard-directory', '.xvpics'), ('wildcard-filename', '.hgtags'), ('wildcard-directory', 'CVS'), ('wildcard-directory', '.hg'), ('wildcard-filename', '*.orig'), ('wildcard-filename', '*.swp'), ('wildcard-directory', '.*cache'), ('wildcard-directory', '.bzr'), ('wildcard-directory', '__pycache__')}), 'HTML and XML Files': ({('mime-type', 'text/xml'), ('mime-type', 'text/html'), ('mime-type', 'text/x-zope-pt')}, {('wildcard-filename', '*~'), ('wildcard-directory', '.vscode'), ('wildcard-directory', '_svn'), ('wildcard-directory', '.svn'), ('wildcard-filename', '*.svn-base'), ('wildcard-filename', '#*#'), ('wildcard-filename', '/.coverage'), ('wildcard-directory', '.hgcheck'), ('wildcard-filename', '.#*'), ('wildcard-filename', '.DS_Store'), ('wildcard-directory', '.venv'), ('wildcard-directory', '.git'), ('wildcard-directory', '.xvpics'), ('wildcard-filename', '.hgtags'), ('wildcard-directory', 'CVS'), ('wildcard-directory', '.hg'), ('wildcard-filename', '*.orig'), ('wildcard-filename', '*.swp'), ('wildcard-directory', '.*cache'), ('wildcard-directory', '.bzr'), ('wildcard-directory', '__pycache__')}), 'All Source Files': (set(), {('wildcard-filename', '*.old'), ('wildcard-filename', '/core'), ('wildcard-filename', '*.bsc'), ('wildcard-filename', '*.dll'), ('wildcard-filename', '*~'), ('wildcard-filename', '*.a'), ('wildcard-filename', '*.wpu'), ('wildcard-filename', '*.wpr'), ('wildcard-filename', '*.vcproj'), ('wildcard-directory', '.vscode'), ('wildcard-filename', '*.dsp'), ('wildcard-filename', '*.o'), ('wildcard-filename', '*.pdb'), ('wildcard-filename', '*.manifest'), ('wildcard-directory', '_svn'), ('wildcard-filename', '*.tgz'), ('wildcard-filename', '*.svn-base'), ('wildcard-filename', '*.ilk'), ('wildcard-filename', '#*#'), ('wildcard-filename', '/.coverage'), ('wildcard-directory', '.svn'), ('wildcard-filename', '*.dsw'), ('wildcard-directory', '.hgcheck'), ('wildcard-filename', '*.temp'), ('wildcard-filename', '*.exe'), ('wildcard-filename', '*.sbr'), ('wildcard-filename', '.#*'), ('wildcard-filename', '*.tmp'), ('wildcard-filename', '.DS_Store'), ('wildcard-filename', '*.pyd'), ('wildcard-filename', '*.sln'), ('wildcard-filename', '*.obj'), ('wildcard-filename', '*.suo'), ('wildcard-filename', '*.tar.gz'), ('wildcard-directory', '.venv'), ('wildcard-directory', '.git'), ('wildcard-filename', '*$py.class'), ('wildcard-filename', '*.user'), ('wildcard-directory', '.xvpics'), ('wildcard-filename', '.hgtags'), ('wildcard-filename', '*.pyo'), ('wildcard-directory', 'CVS'), ('wildcard-directory', '.hg'), ('wildcard-filename', '*.lib'), ('wildcard-filename', '*.orig'), ('wildcard-filename', '*.swp'), ('wildcard-filename', '*.ncb'), ('wildcard-directory', '.*cache'), ('wildcard-filename', '*.zip'), ('wildcard-filename', '*-old'), ('wildcard-filename', '*.so'), ('wildcard-directory', '.bzr'), ('wildcard-filename', '*.bak'), ('wildcard-filename', '*.pyc'), ('wildcard-directory', '__pycache__'), ('wildcard-filename', '*.log')}), 'Hidden & Temporary Files': ({('wildcard-filename', '*.old'), ('wildcard-filename', '/core'), ('wildcard-filename', '*.bsc'), ('wildcard-filename', '*.dll'), ('wildcard-filename', '*~'), ('wildcard-filename', '*.a'), ('wildcard-filename', '*.wpu'), ('wildcard-filename', '*.wpr'), ('wildcard-directory', '.vscode'), ('wildcard-filename', '*.o'), ('wildcard-filename', '*.pdb'), ('wildcard-directory', '_svn'), ('wildcard-filename', '*.tgz'), ('wildcard-filename', '*.svn-base'), ('wildcard-filename', '*.ilk'), ('wildcard-filename', '#*#'), ('wildcard-filename', '/.coverage'), ('wildcard-directory', '.svn'), ('wildcard-directory', '.hgcheck'), ('wildcard-filename', '*.temp'), ('wildcard-filename', '*.exe'), ('wildcard-filename', '*.sbr'), ('wildcard-filename', '.#*'), ('wildcard-filename', '*.tmp'), ('wildcard-filename', '.DS_Store'), ('wildcard-filename', '*.pyd'), ('wildcard-filename', '*.obj'), ('wildcard-filename', '*.tar.gz'), ('wildcard-directory', '.venv'), ('wildcard-directory', '.git'), ('wildcard-filename', '*$py.class'), ('wildcard-directory', '.xvpics'), ('wildcard-filename', '.hgtags'), ('wildcard-filename', '*.pyo'), ('wildcard-directory', 'CVS'), ('wildcard-directory', '.hg'), ('wildcard-filename', '*.lib'), ('wildcard-filename', '*.orig'), ('wildcard-filename', '*.swp'), ('wildcard-filename', '*.ncb'), ('wildcard-directory', '.*cache'), ('wildcard-filename', '*.zip'), ('wildcard-filename', '*-old'), ('wildcard-filename', '*.so'), ('wildcard-directory', '.bzr'), ('wildcard-filename', '*.bak'), ('wildcard-filename', '*.pyc'), ('wildcard-directory', '__pycache__')}, set())}``


* **Reloading**

**Reload when Unchanged**

Selects action to perform on files found to be externally changed but unaltered within the IDE.  Use Auto Reload to automatically reload these files, Immediately Request Reload to ask via a dialog box upon detection, Request Reload on Edit to ask only if the unchanged file is edited within the IDE subsequently, or Never Reload to ignore external changes (although you will still be warned if you try to save over an externally changed file)

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > Reloading > Reload when Unchanged <script:show_preferences_gui#prefname="cache.unchanged-reload-policy">`__
~~~


Internal Name:  ``cache.unchanged-reload-policy``


Data Specification:  ``[auto-reload, request-reload, edit-reload, never-reload]``


Default Value:  ``auto-reload``

**Reload when Changed**

Selects action to perform on files found to be externally changed and that also have been altered in the IDE.  One of Immediately Request Reload to ask via a dialog box upon detection, Request Reload on Edit to ask if the file is edited further, or Never Reload to ignore external changes (although you will always be warned if you try to save over an externally changed file)

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > Reloading > Reload when Changed <script:show_preferences_gui#prefname="cache.changed-reload-policy">`__
~~~


Internal Name:  ``cache.changed-reload-policy``


Data Specification:  ``[request-reload, edit-reload, never-reload]``


Default Value:  ``request-reload``

**Reloading Deleted Disk Files**

Specifies the behavior of reload when a file that is open in an editor disappears on disk.  The default Closes Editor is recommended if using revision control.  Otherwise, retaining the current editor content reduces the chances of entirely losing a file if it is accidentally deleted on disk.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > Reloading > Reloading Deleted Disk Files <script:show_preferences_gui#prefname="guimgr.deleted-disk-file-policy">`__
~~~


Internal Name:  ``guimgr.deleted-disk-file-policy``


Data Specification:  ``[list of: [close, blank, prompt]]``


Default Value:  ``close``

**External Check Freq**

Time in seconds indicating the frequency with which the IDE should check the disk for files that have changed externally. Set to 0 to disable entirely.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > Reloading > External Check Freq <script:show_preferences_gui#prefname="cache.external-check-freq">`__
~~~


Internal Name:  ``cache.external-check-freq``


Data Specification:  ``<type float>, <type int>``


Default Value:  ``5``

**Check Hash Before Reloading**

Don't reload files if size has not changed and a hash of the contents matches the hash when it was last read. This check is skipped if file is larger than 5 MB.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > Reloading > Check Hash Before Reloading <script:show_preferences_gui#prefname="cache.check-hash-before-reload">`__
~~~


Internal Name:  ``cache.check-hash-before-reload``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``


* **External Display**

**File Display Commands**

Posix only: The commands used to display or edit local disk files selected from the Help menu or project files selected for external display.  This is a map from mime type to a list of display commands; each display command is tried in order of the list until one works.  The mime type "*" can be used to set a generic viewer, such as a web browser.  Use %s to place the file name on the command lines. If unspecified then Wing will use the configured URL viewer in the environment (specified by BROWSER environment variable or by searching the path for common browsers). On Windows, the default viewer for the file type is used instead so this preference is ignored. On macOS, files are opened with "open" by default so this preference is rarely needed.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > External Display > File Display Commands <script:show_preferences_gui#prefname="gui.file-display-cmds">`__
~~~


Internal Name:  ``gui.file-display-cmds``


Data Specification:  ``[dict; keys: <type str>, values: [list of: <type str>]]``


Default Value:  ``{}``

**Url Display Commands**

Posix only: The commands used to display URLs.  This is a map from protocol type to a list of display commands; each display command is tried in order of the list until one works.  The protocol "*" can be used to set a generic viewer, such as a multi-protocol web browser.  Use %s to place the URL on the command lines. If unspecified then Wing will use the configured URL viewer in the environment (specified by BROWSER environment variable or by searching the path for common browsers). On Windows, the default web browser is used instead so this preference is ignored. On macOS, URLs are opened with "open" by default so this preference is rarely needed.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Files > External Display > Url Display Commands <script:show_preferences_gui#prefname="gui.url-display-cmds">`__
~~~


Internal Name:  ``gui.url-display-cmds``


Data Specification:  ``[dict; keys: <type str>, values: [list of: <type str>]]``


Default Value:  ``{}``


Editor
------

**Show Line Numbers**

Shows or hides line numbers on the editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Show Line Numbers <script:show_preferences_gui#prefname="edit.show-line-numbers">`__
~~~


Internal Name:  ``edit.show-line-numbers``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Show Whitespace**

Set to true to show whitespace with visible characters by default

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Show Whitespace <script:show_preferences_gui#prefname="edit.show-whitespace">`__
~~~


Internal Name:  ``edit.show-whitespace``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Space Indicator Size**

Sets the size of the indicator to use for a space character when white space is being shown on the editor.  This may be set to zero to show only tab characters.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Space Indicator Size <script:show_preferences_gui#prefname="edit.space-indicator-size">`__
~~~


Internal Name:  ``edit.space-indicator-size``


Data Specification:  ``<type int>``


Default Value:  ``1``

**Show EOL**

Set to true to show end-of-line with visible characters by default

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Show EOL <script:show_preferences_gui#prefname="edit.show-eol">`__
~~~


Internal Name:  ``edit.show-eol``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Split Reuse Policy**

Policy for reusing splits in editors when new files are opened:  Either always open in current split, reuse already visible editor falling back on current split, reuse already visible editor falling back on adjacent split, or always open in an adjacent split.  This only has an effect when more than one editor split is visible.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Split Reuse Policy <script:show_preferences_gui#prefname="gui.split-reuse-policy">`__
~~~


Internal Name:  ``gui.split-reuse-policy``


Data Specification:  ``[current, reuse-current, reuse-adjacent, adjacent]``


Default Value:  ``current``

**Other Split Type**

The type of split to create with commands that display in other split.  The default is to split horizontally if the window width is greater than the height and to split vertically otherwise.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Other Split Type <script:show_preferences_gui#prefname="edit.other-split-type">`__
~~~


Internal Name:  ``edit.other-split-type``


Data Specification:  ``[default, vertical, horizontal]``


Default Value:  ``default``

**Show All Files in All Splits**

Whether to show all open editors in a window in every split.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Show All Files in All Splits <script:show_preferences_gui#prefname="gui.all-editors-in-all-splits">`__
~~~


Internal Name:  ``gui.all-editors-in-all-splits``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Strip Trailing White Space**

Controls whether to automatically strip trailing white space in the editor.  May be enabled for any file or only files that are part of the current project.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Strip Trailing White Space <script:show_preferences_gui#prefname="main.auto-rstrip-on-save">`__
~~~


Internal Name:  ``main.auto-rstrip-on-save``


Data Specification:  ``[tuple length 2 of: [disabled, on-save, on-save-project], <type str>]``


Default Value:  ``disabled``

**Block Comment Style**

Style of commenting to use when commenting out blocks of code.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Block Comment Style <script:show_preferences_gui#prefname="gui.block-comment-style">`__
~~~


Internal Name:  ``gui.block-comment-style``


Data Specification:  ``[block, block-pep8, block-indented-pep8, indented, indented-pep8]``


Default Value:  ``indented``

**Scroll Past End**

Set this to allow scrolling the editor past the last line.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Scroll Past End <script:show_preferences_gui#prefname="edit.scroll-past-end">`__
~~~


Internal Name:  ``edit.scroll-past-end``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Ensure File Ends With EOL When Saving**

Whether to add an eol at the end of the file when it is saved

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Ensure File Ends With EOL When Saving <script:show_preferences_gui#prefname="edit.ensure-ending-eol-on-save">`__
~~~


Internal Name:  ``edit.ensure-ending-eol-on-save``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Enable Font Size Zooming**

Whether to allow font size zooming in the editor, using the mouse wheel, track pad, or zoom-in and zoom-out commands.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Enable Font Size Zooming <script:show_preferences_gui#prefname="edit.enable-font-zoom">`__
~~~


Internal Name:  ``edit.enable-font-zoom``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``


* **Selection/Caret**

**Selection Color**

The color used to indicate the current text selection on editable text.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Selection/Caret > Selection Color <script:show_preferences_gui#prefname="gui.qt-text-selection-color">`__
~~~


Internal Name:  ``gui.qt-text-selection-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Caret Color**

Selects the color to use for the editor caret.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Selection/Caret > Caret Color <script:show_preferences_gui#prefname="edit.caret-color">`__
~~~


Internal Name:  ``edit.caret-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Caret Width**

Width of the blinking insertion caret on the editor, in pixels.  Currently limited to a value between 1 and 3.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Selection/Caret > Caret Width <script:show_preferences_gui#prefname="edit.caret-width">`__
~~~


Internal Name:  ``edit.caret-width``


Data Specification:  ``[from 1 to 3]``


Default Value:  ``1``

**Caret Flash Rate (ms)**

Sets the time in milliseconds between showing and hiding the caret when it is flashing; use 0 to disable flashing entirely

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Selection/Caret > Caret Flash Rate (ms) <script:show_preferences_gui#prefname="edit.caret-flash-rate">`__
~~~


Internal Name:  ``edit.caret-flash-rate``


Data Specification:  ``[from 0 to 2000]``


Default Value:  ``500``

**Caret Line Highlight**

Selects whether to highlight the line the caret is currently on. When enabled, a highlight color and alpha (to control transparency) can be set.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Selection/Caret > Caret Line Highlight <script:show_preferences_gui#prefname="edit.caret-line-highlight">`__
~~~


Internal Name:  ``edit.caret-line-highlight``


Data Specification:  ``[None or [tuple length 2 of: [None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]], <type int>]]``


Default Value:  ``None``

**Scrolling Context Lines**

The number of lines of context to show above or below the caret when auto-scrolling the editor to a new position

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Selection/Caret > Scrolling Context Lines <script:show_preferences_gui#prefname="edit.scroll-context-lines">`__
~~~


Internal Name:  ``edit.scroll-context-lines``


Data Specification:  ``<type int>``


Default Value:  ``5``

**Display Selections Popup**

When to display multiple selections popup window

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Selection/Caret > Display Selections Popup <script:show_preferences_gui#prefname="edit.display-selection-popup">`__
~~~


Internal Name:  ``edit.display-selection-popup``


Data Specification:  ``[always, multiple, never]``


Default Value:  ``multiple``


* **Occurrences**

**Highlight Occurrences**

Selects when to automatically highlight other occurrences of the current selection on the editor

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Occurrences > Highlight Occurrences <script:show_preferences_gui#prefname="edit.highlight-occurrences">`__
~~~


Internal Name:  ``edit.highlight-occurrences``


Data Specification:  ``[always, words, never]``


Default Value:  ``words``

**Match Case**

Disable to allow occurrences highlighting also where case does not match.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Occurrences > Match Case <script:show_preferences_gui#prefname="edit.match-case-occurrences">`__
~~~


Internal Name:  ``edit.match-case-occurrences``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Occurrences Indicator Style**

The style of indicator to use for highlighting other occurrences of the current selection on the editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Occurrences > Occurrences Indicator Style <script:show_preferences_gui#prefname="edit.occurrence-indicator-style">`__
~~~


Internal Name:  ``edit.occurrence-indicator-style``


Data Specification:  ``[box, block]``


Default Value:  ``block``

**Occurrences Color**

The color used to indicate the current text selection on editable text.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Occurrences > Occurrences Color <script:show_preferences_gui#prefname="edit.occurrence-color">`__
~~~


Internal Name:  ``edit.occurrence-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``


* **Callouts**

**Enable Callouts**

Whether to enable display of callouts that are briefly displayed to indicate textvisited in the editor by search, goto-definition, and other navigation features.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Callouts > Enable Callouts <script:show_preferences_gui#prefname="edit.callout-enable">`__
~~~


Internal Name:  ``edit.callout-enable``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Callout Color**

The color used for callouts on the editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Callouts > Callout Color <script:show_preferences_gui#prefname="edit.callout-color">`__
~~~


Internal Name:  ``edit.callout-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Persistence Time (ms)**

The time in milliseconds that callouts persist after display on the editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Callouts > Persistence Time (ms) <script:show_preferences_gui#prefname=".edit.callout-persistence">`__
~~~


Internal Name:  ``.edit.callout-persistence``


Data Specification:  ``<type int>``


Default Value:  ``500``


* **Indentation**

**Use Indent Analysis**

Select when to use indent analysis (examination of current file contents) in order to determine indentation type and size.  Either always in all files, only in Python files, or never.  When disabled, the Preferred Indent Style from Project Properties and Default Indent Size and Default Tab Size from preferences will be used.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Indentation > Use Indent Analysis <script:show_preferences_gui#prefname="edit.use-indent-analysis">`__
~~~


Internal Name:  ``edit.use-indent-analysis``


Data Specification:  ``[always, python-only, never]``


Default Value:  ``always``

**Default Tab Size**

Set size of tabs, in spaces, used in new files.  Note that in Python files that contain mixed space and tab indentation, tab size is always forced to 8 spaces.  Use the Indentation Manager to alter indentation in existing files.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Indentation > Default Tab Size <script:show_preferences_gui#prefname="edit.tab-size">`__
~~~


Internal Name:  ``edit.tab-size``


Data Specification:  ``[from 1 to 80]``


Default Value:  ``8``

**Default Indent Size**

Sets size of an indent, in spaces, used in new files.  This is overridden in non-empty files, according to the actual contents of the file.  In files with tab-only indentation, this value may be modified so it is a multiple of the configured tab size.  Use the Indentation Manager to alter indentation in existing files.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Indentation > Default Indent Size <script:show_preferences_gui#prefname="edit.indent-size">`__
~~~


Internal Name:  ``edit.indent-size``


Data Specification:  ``[from 1 to 80]``


Default Value:  ``4``

**Default Indent Style**

Set the style of indentation used in new files.  This is overridden in non-empty files, according to the actual contents of the file.  Use the Indentation Manager to alter indentation in existing files.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Indentation > Default Indent Style <script:show_preferences_gui#prefname="edit.indent-style">`__
~~~


Internal Name:  ``edit.indent-style``


Data Specification:  ``[spaces-only, tabs-only, mixed]``


Default Value:  ``spaces-only``

**Auto Indent**

Controls when Wing automatically indents when return or enter is typed.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Indentation > Auto Indent <script:show_preferences_gui#prefname="edit.auto-indent">`__
~~~


Internal Name:  ``edit.auto-indent``


Data Specification:  ``[1, blank-only, 0]``


Default Value:  ``1``

**Show Indent Guides**

Set to true to show indent guides by default

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Indentation > Show Indent Guides <script:show_preferences_gui#prefname="edit.show-indent-guides">`__
~~~


Internal Name:  ``edit.show-indent-guides``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Indent Guide Color**

Color to use for the indent guides in the editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Indentation > Indent Guide Color <script:show_preferences_gui#prefname="edit.indent-guide-color">`__
~~~


Internal Name:  ``edit.indent-guide-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Show Python Indent Warning Dialog**

Set to show a warning dialog when opening a Python file that contains potentially problematic indentation:  Either inconsistent and possibly confusing indentation, a mix of indent styles in a single file, or mixed tab and space indentation (which is not recommended for Python).

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Indentation > Show Python Indent Warning Dialog <script:show_preferences_gui#prefname="edit.show-python-indent-warnings">`__
~~~


Internal Name:  ``edit.show-python-indent-warnings``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Show Override Warning Dialog**

Show indent mismatch warning dialog when user selects an indent style that is incompatible with existing file content.  This only applies to non-Python files since Wing disallows overriding the indent style in all Python files.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Indentation > Show Override Warning Dialog <script:show_preferences_gui#prefname="edit.show-non-py-indent-warning">`__
~~~


Internal Name:  ``edit.show-non-py-indent-warning``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``


* **Line Wrapping**

**Wrap Long Lines**

Enable to wrap long source lines on the editor display.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Line Wrapping > Wrap Long Lines <script:show_preferences_gui#prefname="edit.wrap-lines">`__
~~~


Internal Name:  ``edit.wrap-lines``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Edge Markers**

Control whether and how edge markers are shown in the editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Line Wrapping > Edge Markers <script:show_preferences_gui#prefname="edit.qt-show-edge-markers">`__
~~~


Internal Name:  ``edit.qt-show-edge-markers``


Data Specification:  ``[tuple length 3 of: [0, 1, 2], [from 0 to 10000], [None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]]``


Default Value:  ``(0, 80, None)``

**Reformatting Wrap Column**

Column at which text should be wrapped by commands that automatically rearrange text

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Line Wrapping > Reformatting Wrap Column <script:show_preferences_gui#prefname="edit.text-wrap-column">`__
~~~


Internal Name:  ``edit.text-wrap-column``


Data Specification:  ``<type int>``


Default Value:  ``77``


* **Clipboard**

**On Empty Selection**

Controls whether or not to copy or cut the whole current line when there is no selection on the editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Clipboard > On Empty Selection <script:show_preferences_gui#prefname="edit.smart-clipboard">`__
~~~


Internal Name:  ``edit.smart-clipboard``


Data Specification:  ``[disabled, copy, copy-cut]``


Default Value:  ``copy``

**Middle Mouse Paste**

Paste text into the editor from the clipboard when the middle mouse button is pressed. Disabling this is mainly useful for wheel mice with a soft wheel that causes pasting of text before wheel scrolling starts.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Clipboard > Middle Mouse Paste <script:show_preferences_gui#prefname="edit.middle-mouse-paste">`__
~~~


Internal Name:  ``edit.middle-mouse-paste``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Convert Indent Style On Paste**

Controls whether Wing automatically converts indent style and size on text that is pasted into an editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Clipboard > Convert Indent Style On Paste <script:show_preferences_gui#prefname="edit.convert-indents-on-paste">`__
~~~


Internal Name:  ``edit.convert-indents-on-paste``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Adjust Indent After Paste**

Controls whether Wing automatically adjusts indents after multi-line text is pasted.  When enabled, a single undo will remove any alterations in indentation.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Clipboard > Adjust Indent After Paste <script:show_preferences_gui#prefname="edit.adjust-indent-after-paste">`__
~~~


Internal Name:  ``edit.adjust-indent-after-paste``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``


* **Syntax Coloring**

**Syntax Formatting**

Formatting options for syntax coloring in editors.  Colors are relative to a white background and will be transformed if the background color is set to a color other than white.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Syntax Coloring > Syntax Formatting <script:show_preferences_gui#prefname=".edit.syntax-formatting">`__
~~~


Internal Name:  ``.edit.syntax-formatting``


Data Specification:  ``[dict; keys: <type str>, values: [dict; keys: <type str>, values: [dict; keys: [fore, back, bold, italic], values: [one of: None, <type str>, <boolean: 0 or 1>]]]]``


Default Value:  ``{}``

**Highlight Builtins**

Highlight Python builtins

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Syntax Coloring > Highlight Builtins <script:show_preferences_gui#prefname="edit.highlight-builtins">`__
~~~


Internal Name:  ``edit.highlight-builtins``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``


* **Brace Matching**

**Brace Highlighting**

Enabled to automatically highlight the matching braces next to the cursor or as they are typed.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Brace Matching > Brace Highlighting <script:show_preferences_gui#prefname="edit.auto-brace-match">`__
~~~


Internal Name:  ``edit.auto-brace-match``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Brace Highlight Color**

The color used to highlight matching braces.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Brace Matching > Brace Highlight Color <script:show_preferences_gui#prefname="edit.brace-highlight-color">`__
~~~


Internal Name:  ``edit.brace-highlight-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Brace Highlight Background Color**

The background color used to highlight matching braces.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Brace Matching > Brace Highlight Background Color <script:show_preferences_gui#prefname="edit.brace-highlight-backcolor">`__
~~~


Internal Name:  ``edit.brace-highlight-backcolor``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Brace Badlight Color**

The color used to highlight bad braces.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Brace Matching > Brace Badlight Color <script:show_preferences_gui#prefname="edit.brace-badlight-color">`__
~~~


Internal Name:  ``edit.brace-badlight-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Brace Badlight Background Color**

The background color used to highlight bad braces.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Brace Matching > Brace Badlight Background Color <script:show_preferences_gui#prefname="edit.brace-badlight-backcolor">`__
~~~


Internal Name:  ``edit.brace-badlight-backcolor``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``


* **Code Warnings**

**Enable Code Warnings**

Whether to enable the code warnings system as a whole.  When this is disabled, no code warnings are displayed and external code warnings systems will not be launched even if enabled.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Code Warnings > Enable Code Warnings <script:show_preferences_gui#prefname="codewarnings.enable">`__
~~~


Internal Name:  ``codewarnings.enable``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Indicators**

Controls whether Wing will show error and/or warning indicators on the editor as red and yellow underlines.  When shown, hovering the mouse over the indicator shows the error or warning detail in a tooltip.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Code Warnings > Indicators <script:show_preferences_gui#prefname="edit.error-display">`__
~~~


Internal Name:  ``edit.error-display``


Data Specification:  ``[show-all, show-errors, show-none]``


Default Value:  ``show-all``

**Indicator Style**

Visual display style to use for code errors and warnings shown on the editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Code Warnings > Indicator Style <script:show_preferences_gui#prefname="edit.indicator-style">`__
~~~


Internal Name:  ``edit.indicator-style``


Data Specification:  ``[underline, thick-underline, squiggle, plain-box, filled-box]``


Default Value:  ``squiggle``

**Error Color**

Color to use to indicate code errors in the editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Code Warnings > Error Color <script:show_preferences_gui#prefname="edit.code-error-color">`__
~~~


Internal Name:  ``edit.code-error-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Warning Color**

Color to use to indicate code warnings in the editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Code Warnings > Warning Color <script:show_preferences_gui#prefname="edit.code-warning-color">`__
~~~


Internal Name:  ``edit.code-warning-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``


* **Code Coverage**

**Set Visited Lines Background Color**

Whether to highlight visited lines for code coverage using background color, in addition to the margin mark.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Code Coverage > Set Visited Lines Background Color <script:show_preferences_gui#prefname="edit.coverage-visited-background">`__
~~~


Internal Name:  ``edit.coverage-visited-background``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Visited Lines Color**

Color to use to highlight lines of code that were visited during code coverage tests.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Code Coverage > Visited Lines Color <script:show_preferences_gui#prefname="edit.coverage-visited-color">`__
~~~


Internal Name:  ``edit.coverage-visited-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Set Missed Lines Background Color**

Whether to highlight missed lines for code coverage using background color, in addition to the margin mark.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Code Coverage > Set Missed Lines Background Color <script:show_preferences_gui#prefname="edit.coverage-missed-background">`__
~~~


Internal Name:  ``edit.coverage-missed-background``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Missed Lines Color**

Color to use to highlight lines of code that were missed during code coverage tests.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Code Coverage > Missed Lines Color <script:show_preferences_gui#prefname="edit.coverage-missed-color">`__
~~~


Internal Name:  ``edit.coverage-missed-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Show Editor Tooltips**

Whether to show tool tips on the editor when code coverage annotations are present, in order to enumerate the unit tests that invoked the line of code under the mouse cursor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Code Coverage > Show Editor Tooltips <script:show_preferences_gui#prefname="edit.coverage-visited-tooltips">`__
~~~


Internal Name:  ``edit.coverage-visited-tooltips``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``


* **Bookmarks**

**Bookmark Color**

Color to use on the source editor to indicate the location of user-defined bookmarks.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Bookmarks > Bookmark Color <script:show_preferences_gui#prefname="edit.qt-bookmark-color">`__
~~~


Internal Name:  ``edit.qt-bookmark-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Bookmark Style**

Visual display style to use for bookmarks:  Either an underline, a background color change, or no visible marker.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Bookmarks > Bookmark Style <script:show_preferences_gui#prefname="edit.bookmark-style">`__
~~~


Internal Name:  ``edit.bookmark-style``


Data Specification:  ``[None, underline, background]``


Default Value:  ``background``

**Confirm Deletion**

Show a confirmation dialog when deleting bookmarks

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Bookmarks > Confirm Deletion <script:show_preferences_gui#prefname="edit.bookmark-confirm-delete">`__
~~~


Internal Name:  ``edit.bookmark-confirm-delete``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``


* **Folding**

**Enable Folding**

Whether to enable folding source code.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Folding > Enable Folding <script:show_preferences_gui#prefname="edit.enable-folding">`__
~~~


Internal Name:  ``edit.enable-folding``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Line Mode**

Whether and how to show a line at a collapsed fold point.  Controls the position of the line and whether it is shown for collapsed or expanded fold points.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Folding > Line Mode <script:show_preferences_gui#prefname="edit.fold-line-mode">`__
~~~


Internal Name:  ``edit.fold-line-mode``


Data Specification:  ``[above-expanded, below-expanded, above-collapsed, below-collapsed, none]``


Default Value:  ``below-collapsed``

**Indicator Style**

Selects the type of indicators to draw at fold points.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Folding > Indicator Style <script:show_preferences_gui#prefname="edit.fold-indicator-style">`__
~~~


Internal Name:  ``edit.fold-indicator-style``


Data Specification:  ``[from 0 to 3]``


Default Value:  ``1``

**Fold Trailing White Space**

Controls whether or not trailing white space after a block of code is folded up along with the block, for a more compact folded display.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Folding > Fold Trailing White Space <script:show_preferences_gui#prefname="edit.fold-trailing-whitespace">`__
~~~


Internal Name:  ``edit.fold-trailing-whitespace``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Foreground Color**

Color to use for the foreground of the fold indicators.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Folding > Foreground Color <script:show_preferences_gui#prefname="edit.fold-mark-foreground-color">`__
~~~


Internal Name:  ``edit.fold-mark-foreground-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Background Color**

Color to use for the background of the fold indicators.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Folding > Background Color <script:show_preferences_gui#prefname="edit.fold-mark-background-color">`__
~~~


Internal Name:  ``edit.fold-mark-background-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``


* **Auto-completion**

**Auto-show Completer**

Controls whether or not the completer is always shown automatically during typing, never auto-shown, or shown only after a certain number of characters are in the completion fragment.  When auto-show is disabled, the auto-completer can still be shown on demand with the Show Completer item in the Source menu.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Auto-show Completer <script:show_preferences_gui#prefname="edit.autocomplete-autoshow-option">`__
~~~


Internal Name:  ``edit.autocomplete-autoshow-option``


Data Specification:  ``[never, always]``


Default Value:  ``always``

**Only Show Matching Symbols**

Whether to only display symbols in the autocompleter that match the currently typed fragment

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Only Show Matching Symbols <script:show_preferences_gui#prefname=".edit.filter-all-symbols-in-autocompleter">`__
~~~


Internal Name:  ``.edit.filter-all-symbols-in-autocompleter``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Symbol Types**

Controls which types of symbols to include in the auto-completer.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Symbol Types <script:show_preferences_gui#prefname="edit.autocompleter-symbol-types">`__
~~~


Internal Name:  ``edit.autocompleter-symbol-types``


Data Specification:  ``[tuple of: [snippet, builtin, keyword, under]]``


Default Value:  ``['snippet', 'builtin', 'keyword', 'under']``

**Python Auto-imports**

Whether to add auto-import items to the autocompleter for modules and packages that could be but have not yet been imported:  Either always, never, once for the current completion when requested from the auto-completer, or always once requested until disabled again.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Python Auto-imports <script:show_preferences_gui#prefname=".edit.add-auto-imports-to-autocompleter">`__
~~~


Internal Name:  ``.edit.add-auto-imports-to-autocompleter``


Data Specification:  ``[always, never, optionally-once, optionally]``


Default Value:  ``optionally-once``

**Only Show Matching Auto-imports**

Whether to display only auto-imports that match the currently typed fragment in the autocompleter. When this is disabled, all possible imports are included.  The higher-level Show Matching Symbols preference takes precedence and overrides this preference when it is set.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Only Show Matching Auto-imports <script:show_preferences_gui#prefname=".edit.filter-auto-imports-in-autocompleter">`__
~~~


Internal Name:  ``.edit.filter-auto-imports-in-autocompleter``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Remove Auto-imports When Symbol Changed or Deleted**

Whether to remove an import added by the autocompleter when the symbol that used the name imported is changed or deleted while still editing the line.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Remove Auto-imports When Symbol Changed or Deleted <script:show_preferences_gui#prefname=".edit.remove-auto-imports-when-symbol-deleted">`__
~~~


Internal Name:  ``.edit.remove-auto-imports-when-symbol-deleted``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Python Turbo Mode**

When enabled, the Python auto-completer enters the completion automatically whenever a key other than a valid symbol name key is pressed.  Press a modifier key (Shift, Alt, or Ctrl) by itself to exit the completer without entering a completion.  When disabled, only the configured completion keys enter the completion into the editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Python Turbo Mode <script:show_preferences_gui#prefname="edit.autocomplete-turbo-mode">`__
~~~


Internal Name:  ``edit.autocomplete-turbo-mode``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Completion Keys**

Controls which keys will enter selected completion value into the editor.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Completion Keys <script:show_preferences_gui#prefname="edit.autocomplete-keys">`__
~~~


Internal Name:  ``edit.autocomplete-keys``


Data Specification:  ``[list of: [tab, return, space, f1, f3, f10, f12, period, parenleft, bracketleft, colon]]``


Default Value:  ``['tab']``

**Auto-completer Height**

The maximum number of lines to show in the auto-completer at once.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Auto-completer Height <script:show_preferences_gui#prefname="edit.autocompleter-height">`__
~~~


Internal Name:  ``edit.autocompleter-height``


Data Specification:  ``<type int>``


Default Value:  ``10``

**Auto-complete Delay (sec)**

Delay in seconds from last key press to wait before the auto-completer is shown. If 0.0, the auto-completer is shown immediately.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Auto-complete Delay (sec) <script:show_preferences_gui#prefname="edit.autocomplete-delay">`__
~~~


Internal Name:  ``edit.autocomplete-delay``


Data Specification:  ``<type int>, <type float>``


Default Value:  ``0.0``

**Auto-complete Timeout**

Timeout in seconds from last key press after which the auto-completer is automatically hidden. If 0.0, the auto-completer does not time out.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Auto-complete Timeout <script:show_preferences_gui#prefname="edit.autocomplete-timeout">`__
~~~


Internal Name:  ``edit.autocomplete-timeout``


Data Specification:  ``<type int>, <type float>``


Default Value:  ``0``

**Completion Mode**

Selects how completion is done in the editor:  Either insert the completion at the cursor, replace any symbols that heuristically match the selected completion (and insert in other cases), or replace any existing symbol with the new symbol.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Completion Mode <script:show_preferences_gui#prefname="edit.autocomplete-mode">`__
~~~


Internal Name:  ``edit.autocomplete-mode``


Data Specification:  ``[insert, replace-matching, replace]``


Default Value:  ``insert``

**Case Insensitive Matching**

Controls whether matching in the completer is case sensitive or not.  The correct case is always used when a completion is chosen.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Case Insensitive Matching <script:show_preferences_gui#prefname="edit.autocomplete-case-insensitive">`__
~~~


Internal Name:  ``edit.autocomplete-case-insensitive``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Non-Python Completion**

Controls whether or not use the completer in non-Python files, where it uses a simple word list generated from the existing contents of the file.  If enabled, the number of characters required before the completer is shown may be specified here.This value overrides any character threshold set above.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Non-Python Completion <script:show_preferences_gui#prefname="edit.autocomplete-non-python-option">`__
~~~


Internal Name:  ``edit.autocomplete-non-python-option``


Data Specification:  ``[never, always]``


Default Value:  ``3``

**Non-Python Word Size**

Sets the minimum size of words to add to the completion list for non-Python files.  This affects only words found in the file, and not words included because they are keywords for that file type.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Non-Python Word Size <script:show_preferences_gui#prefname="edit.autocomplete-non-python-word-size">`__
~~~


Internal Name:  ``edit.autocomplete-non-python-word-size``


Data Specification:  ``<type int>``


Default Value:  ``4``

**Non-Latin Script Display**

Whether to display autocompleter for non-latin scripts

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-completion > Non-Latin Script Display <script:show_preferences_gui#prefname=".edit.display-autocompleter-for-non-latin-scripts">`__
~~~


Internal Name:  ``.edit.display-autocompleter-for-non-latin-scripts``


Data Specification:  ``[auto, yes, no]``


Default Value:  ``auto``


* **Auto-editing**

**Auto-Editing Enabled**

Enable or disable Wing's auto-editing capability.  When enabled, a default set of individual auto-editing operations (such as auto-closing quotes and parenthesis and auto-entering invocation arguments) will be activated.  The individual operations can then be enabled or disabled independently in preferences.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing > Auto-Editing Enabled <script:show_preferences_gui#prefname="edit.auto-edit-enabled">`__
~~~


Internal Name:  ``edit.auto-edit-enabled``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Auto-Close Characters**

Enable to auto-close quotes, parenthesis, braces, comments, and so forth.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing > Auto-Close Characters <script:show_preferences_gui#prefname="edit.auto-edit-close">`__
~~~


Internal Name:  ``edit.auto-edit-close``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Auto-Enter Invocation Args**

Enable auto-entry of invocation arguments for a function or method call.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing > Auto-Enter Invocation Args <script:show_preferences_gui#prefname="edit.auto-edit-invoke">`__
~~~


Internal Name:  ``edit.auto-edit-invoke``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**    Auto-wrap Arguments**

Enable auto-wrapping of arguments during auto-invocation.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing >     Auto-wrap Arguments <script:show_preferences_gui#prefname="edit.auto-edit-invoke-wraps">`__
~~~


Internal Name:  ``edit.auto-edit-invoke-wraps``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**    Invoke After Completion**

Enable auto-invocation to occur automatically after a callable symbol is entered by the auto-completer.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing >     Invoke After Completion <script:show_preferences_gui#prefname="edit.auto-edit-invoke-after-complete">`__
~~~


Internal Name:  ``edit.auto-edit-invoke-after-complete``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Apply Quotes to Selection**

Enable placing quotes around a non-empty selection.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing > Apply Quotes to Selection <script:show_preferences_gui#prefname="edit.auto-edit-quotes">`__
~~~


Internal Name:  ``edit.auto-edit-quotes``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Mutate Adjacent Quotes**

Enable changing quote style by pressing a quote key while the caret is next to an existing quote character.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing > Mutate Adjacent Quotes <script:show_preferences_gui#prefname="edit.auto-edit-mutate-quotes">`__
~~~


Internal Name:  ``edit.auto-edit-mutate-quotes``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Apply Comment Key to Selection**

Enable commenting out a non-empty selection when a comment character is pressed.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing > Apply Comment Key to Selection <script:show_preferences_gui#prefname="edit.auto-edit-comment">`__
~~~


Internal Name:  ``edit.auto-edit-comment``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Apply (), [], and {} to Selection**

Enable surrounding non-empty selection when a parenthesis is pressed.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing > Apply (), [], and {} to Selection <script:show_preferences_gui#prefname="edit.auto-edit-parens">`__
~~~


Internal Name:  ``edit.auto-edit-parens``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Apply Colon to Selection**

Enable creating a new block with a selected range of lines when colon is pressed.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing > Apply Colon to Selection <script:show_preferences_gui#prefname="edit.auto-edit-colon-creates-block">`__
~~~


Internal Name:  ``edit.auto-edit-colon-creates-block``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Auto-Enter Spaces**

Enable auto-entering spaces around operators and punctuation.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing > Auto-Enter Spaces <script:show_preferences_gui#prefname="edit.auto-edit-spaces">`__
~~~


Internal Name:  ``edit.auto-edit-spaces``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**    Auto-Space After Keywords**

Enable auto-entering spaces after keywords.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing >     Auto-Space After Keywords <script:show_preferences_gui#prefname="edit.auto-edit-spaces-kw">`__
~~~


Internal Name:  ``edit.auto-edit-spaces-kw``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**    Enforce PEP 8 Style Spacing**

When auto-entering spaces is enabled, enforce PEP 8 style spacing by preventing redundant spaces.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing >     Enforce PEP 8 Style Spacing <script:show_preferences_gui#prefname="edit.auto-edit-spaces-enforce">`__
~~~


Internal Name:  ``edit.auto-edit-spaces-enforce``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**    Spaces Around = in Argument Lists**

Add spaces around = in argument lists.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing >     Spaces Around = in Argument Lists <script:show_preferences_gui#prefname="edit.auto-edit-spaces-args">`__
~~~


Internal Name:  ``edit.auto-edit-spaces-args``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**    Spaces Elsewhere in Argument Lists**

Add spaces around characters other than = in argument lists.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing >     Spaces Elsewhere in Argument Lists <script:show_preferences_gui#prefname="edit.auto-edit-spaces-args-override">`__
~~~


Internal Name:  ``edit.auto-edit-spaces-args-override``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**    Spaces After : in Type Annotations**

When auto-entering spaces is enabled, also auto-enter spaces after ":" in type annotations.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing >     Spaces After : in Type Annotations <script:show_preferences_gui#prefname="edit.auto-edit-spaces-types">`__
~~~


Internal Name:  ``edit.auto-edit-spaces-types``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Manage Blocks on Repeated Colon Key Presses**

Auto-enter newline and auto-indent after typing a colon that starts a new Python block and indent following line or block of lines when colon is pressed repeatedly.  This also starts a new Python block using a selected range of lines as the body, if colon is pressed on a non-empty selection.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing > Manage Blocks on Repeated Colon Key Presses <script:show_preferences_gui#prefname="edit.auto-edit-colon">`__
~~~


Internal Name:  ``edit.auto-edit-colon``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**    Prefer Block Management Over := and Type Hints**

Prioritize block management with : over the possibility of entering a var:type variable type annotation (Python 3.6+) or := (Python 3.8+).  When this is disabled, typing : a second time will proceed with block management.in the current editing context.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing >     Prefer Block Management Over := and Type Hints <script:show_preferences_gui#prefname="edit.auto-edit-colon-prioritize-blocks">`__
~~~


Internal Name:  ``edit.auto-edit-colon-prioritize-blocks``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Continue Comment or String on New Line**

Automatically continue comments or strings in the form ("") or () after a newline is typed within the comment or string text

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing > Continue Comment or String on New Line <script:show_preferences_gui#prefname="edit.auto-edit-continue">`__
~~~


Internal Name:  ``edit.auto-edit-continue``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Correct Out-of-Order Typing**

Automatically correct code when typing keys out of order. This handles cases such as x(.) -> x(). and x(:) -> x(): as well as auto-inserting . when missing

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-editing > Correct Out-of-Order Typing <script:show_preferences_gui#prefname="edit.auto-edit-fixups">`__
~~~


Internal Name:  ``edit.auto-edit-fixups``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``


* **Auto-formatting**

**Auto-Reformat**

Controls when Wing automatically reformats code as you edit it.  May be disabled, limited to only edited lines after the caret leaves that line, or performed on whole files when they are saved to disk.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-formatting > Auto-Reformat <script:show_preferences_gui#prefname="edit.pep8-autoformat">`__
~~~


Internal Name:  ``edit.pep8-autoformat``


Data Specification:  ``[disabled, lines, files]``


Default Value:  ``disabled``

**Reformatter**

Selects the reformatter to use when reformatting code automatically.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-formatting > Reformatter <script:show_preferences_gui#prefname="edit.pep8-reformatter">`__
~~~


Internal Name:  ``edit.pep8-reformatter``


Data Specification:  ``[pep8, black, ruff, yapf]``


Default Value:  ``pep8``

**Reformat Timeout**

Number of seconds to wait for auto-formatting to complete before aborting the reformatting process.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-formatting > Reformat Timeout <script:show_preferences_gui#prefname="edit.pep8-timeout">`__
~~~


Internal Name:  ``edit.pep8-timeout``


Data Specification:  ``<type float>, <type int>``


Default Value:  ``5``

**Enforce Line Length**

Whether to enforce line length during auto-formatting.  The length is specified with the Editor > Line Wrapping > Reformatting Wrap Column preference.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-formatting > Enforce Line Length <script:show_preferences_gui#prefname="edit.pep8-enforce-line-length">`__
~~~


Internal Name:  ``edit.pep8-enforce-line-length``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**PEP 8: Reindent All Lines in Files**

Whether to reindent all lines during PEP 8 reformatting.  This affects only reformatting of whole files.  Lines in a selection are never reindented during reformatting.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-formatting > PEP 8: Reindent All Lines in Files <script:show_preferences_gui#prefname="edit.pep8-reindent-all-lines">`__
~~~


Internal Name:  ``edit.pep8-reindent-all-lines``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**PEP 8: Spaces Around = in Argument Lists**

Override PEP 8 by adding spaces around = in argument lists.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-formatting > PEP 8: Spaces Around = in Argument Lists <script:show_preferences_gui#prefname="edit.pep8-spaces-args">`__
~~~


Internal Name:  ``edit.pep8-spaces-args``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**PEP 8: Spaces After #**

When applying PEP 8 rules, follow PEP 8 by enforcing the addition of spaces after # comment start.  This option will lose indents in any commented out code.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-formatting > PEP 8: Spaces After # <script:show_preferences_gui#prefname="edit.pep8-spaces-comment">`__
~~~


Internal Name:  ``edit.pep8-spaces-comment``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**PEP 8: Move Imports to Top**

When applying PEP 8 rules, follow PEP 8 by moving all imports to the top of the file.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-formatting > PEP 8: Move Imports to Top <script:show_preferences_gui#prefname="edit.pep8-move-indents-to-top">`__
~~~


Internal Name:  ``edit.pep8-move-indents-to-top``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Black: Skip String Normalization**

Whether or not to prevent Black from normalizing string quotes during auto-formatting.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-formatting > Black: Skip String Normalization <script:show_preferences_gui#prefname="edit.black-skip-string-normalization">`__
~~~


Internal Name:  ``edit.black-skip-string-normalization``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Reformatter Run Directory**

Selects the current directory to use when running code reformatters, either the reformatted file's directory, the project's directory (or Project Home Directory if set), the user account's home directory, or a selected directory.  The run directory may affect which configuration file is used by the reformatter.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Auto-formatting > Reformatter Run Directory <script:show_preferences_gui#prefname="edit.reformat-run-dir">`__
~~~


Internal Name:  ``edit.reformat-run-dir``


Data Specification:  ``[file, project, home, custom]``


Default Value:  ``('file', '/home/maint/')``


* **Snippets**

**Include Default Snippets**

Whether to include the default snippets set in the Snippets tool.  These are found in the User Settings directory (USER_SETTINGS_DIR)

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Snippets > Include Default Snippets <script:show_preferences_gui#prefname="edit.snippets-include-defaults">`__
~~~


Internal Name:  ``edit.snippets-include-defaults``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Snippets Path**

Path to search for code snippets.  Later directories on the path override earlier directories for a particular snippet name.  Partial paths are  interpreted relative to the current user's home directory (/home/maint/).  new  snippets will be created in the last directory on the path.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Snippets > Snippets Path <script:show_preferences_gui#prefname="edit.snippets-path">`__
~~~


Internal Name:  ``edit.snippets-path``


Data Specification:  ``[tuple of: <type str>]``


Default Value:  ``()``


* **Diff/Merge**

**Orientation**

Orientation of difference/merge views: Side-by-side or top/bottom

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Diff/Merge > Orientation <script:show_preferences_gui#prefname="diff.orientation">`__
~~~


Internal Name:  ``diff.orientation``


Data Specification:  ``[horizontal, vertical]``


Default Value:  ``horizontal``

**Lock Scrolling**

Controls whether scrolling of the diff/merge editors is locked to synchronize the editor scroll positions.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Diff/Merge > Lock Scrolling <script:show_preferences_gui#prefname="diff.scroll-lock">`__
~~~


Internal Name:  ``diff.scroll-lock``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Ignore White Space**

Controls whether differences will ignore changes that alter white space only.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Diff/Merge > Ignore White Space <script:show_preferences_gui#prefname="diff.ignore-whitespace">`__
~~~


Internal Name:  ``diff.ignore-whitespace``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Empty Session Warning**

Controls whether to warn when changing white space filtering causes sessions to become empty of changes.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Diff/Merge > Empty Session Warning <script:show_preferences_gui#prefname="diff.empty-session-warning">`__
~~~


Internal Name:  ``diff.empty-session-warning``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Diff Color**

Color to use on the source editor for differences during a diff/merge session.  The current mark is drawn in a lighter version of the same color.  The within-difference change indicators are drawn transparently with the color set in the Text Selection Color preference.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Diff/Merge > Diff Color <script:show_preferences_gui#prefname="edit.qt-diff-color">`__
~~~


Internal Name:  ``edit.qt-diff-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Merged Diff Color**

Color to use on the source editor for already merged differences during a diff/merge session.  The current mark is drawn in a lighter version of the same color.  The within-difference change indicators are drawn transparently with the color set in the Text Selection Color preference.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Diff/Merge > Merged Diff Color <script:show_preferences_gui#prefname="edit.qt-merged-diff-color">`__
~~~


Internal Name:  ``edit.qt-merged-diff-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``


* **Printing**

**Document Font**

Font to use when printing.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Printing > Document Font <script:show_preferences_gui#prefname="edit.print-font">`__
~~~


Internal Name:  ``edit.print-font``


Data Specification:  ``[None or <type str>]``


Default Value:  ``None``

**Use Default Foreground Colors**

Use default foreground colors for all text when printing.  This is necessary when using a dark background in the GUI and printing on white paper.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Printing > Use Default Foreground Colors <script:show_preferences_gui#prefname="edit.use-default-foreground-when-printing">`__
~~~


Internal Name:  ``edit.use-default-foreground-when-printing``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Print Header Format**

Set the header format to use for printing.  This can be any text with any of the following special fields mixed in: %basename% - base file name; %prepend-fullpath% - full path file name; %prepend-relative% - relative path with from project file; %append-relative% - file name with relative path appended; %append-fullpath% - file name with full path appended; %file-time% - file modification time; %file-date% - file modification date; %current-time% - current time; %current-date% - current date; %page% - current page being printed

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Printing > Print Header Format <script:show_preferences_gui#prefname="edit.print-header-format">`__
~~~


Internal Name:  ``edit.print-header-format``


Data Specification:  ``<type str>``


Default Value:  ``%prepend-fullpath%``

**Print Header Font**

Font to use in print header.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Printing > Print Header Font <script:show_preferences_gui#prefname="edit.print-header-font">`__
~~~


Internal Name:  ``edit.print-header-font``


Data Specification:  ``[None or <type str>]``


Default Value:  ``None``

**Print Footer Format**

Set the footer format to use for printing.  The values allowed are the same as those for print-header-format.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Printing > Print Footer Format <script:show_preferences_gui#prefname="edit.print-footer-format">`__
~~~


Internal Name:  ``edit.print-footer-format``


Data Specification:  ``<type str>``


Default Value:  ``Page %page%, last modified %file-date% %file-time%``

**Print Footer Font**

Font to use in print footer.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Printing > Print Footer Font <script:show_preferences_gui#prefname="edit.print-header-font">`__
~~~


Internal Name:  ``edit.print-header-font``


Data Specification:  ``[None or <type str>]``


Default Value:  ``None``


* **Context Menu**

**Groups Shown**

Controls which groups of menu items will be shown in the editor's context menu.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Context Menu > Groups Shown <script:show_preferences_gui#prefname="edit.context-menu-groups">`__
~~~


Internal Name:  ``edit.context-menu-groups``


Data Specification:  ``[list of: [clip, nav, ai, debug, comment, indent, vcs, script]]``


Default Value:  ``['clip', 'nav', 'ai', 'debug', 'comment', 'indent', 'vcs', 'script']``

**Custom Items**

Extra menu items to add to the editor context menu.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Context Menu > Custom Items <script:show_preferences_gui#prefname="edit.context-menu-custom-items">`__
~~~


Internal Name:  ``edit.context-menu-custom-items``


Data Specification:  ``[tuple of: [tuple length 2 of: <type str>, <type str>]]``


Default Value:  ``()``


* **Advanced**

**Maximum Non-Sticky Editors**

Maximum number of non-sticky (auto-closing) editors to keep open at one time, in addition to any that are visible on screen

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Advanced > Maximum Non-Sticky Editors <script:show_preferences_gui#prefname="gui.max-non-sticky-editors">`__
~~~


Internal Name:  ``gui.max-non-sticky-editors``


Data Specification:  ``<type int>``


Default Value:  ``5``

**Use Custom Mouse Cursor**

When to use a custom mouse cursor.  The color of the cursor will be the color of the caret.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Advanced > Use Custom Mouse Cursor <script:show_preferences_gui#prefname="edit.use-custom-mouse-cursor">`__
~~~


Internal Name:  ``edit.use-custom-mouse-cursor``


Data Specification:  ``[on-dark-backgrounds, never, always]``


Default Value:  ``on-dark-backgrounds``

**Mini-search Case Sensitivity**

Whether or not mini-search is case sensitive.  May match the current keyboard personality's default, use case sensitive search only if an upper case character is typed, always search case sensitive, or always search case insensitively.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Advanced > Mini-search Case Sensitivity <script:show_preferences_gui#prefname="edit.minisearch-case-sensitive">`__
~~~


Internal Name:  ``edit.minisearch-case-sensitive``


Data Specification:  ``[match-mode, if-upper, always, never]``


Default Value:  ``match-mode``

**Symbol Menu Max Length**

The maximum number of names allowed on a single symbol menu

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Advanced > Symbol Menu Max Length <script:show_preferences_gui#prefname=".edit.max-symbol-menu-name-count">`__
~~~


Internal Name:  ``.edit.max-symbol-menu-name-count``


Data Specification:  ``<type int>``


Default Value:  ``200``

**Selection Policy**

This controls whether to retain selection in the editor after certain operations. The editor may always select the text that was operated on, only retain existing selections, or never select after the operation completes.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Editor > Advanced > Selection Policy <script:show_preferences_gui#prefname="edit.select-policy">`__
~~~


Internal Name:  ``edit.select-policy``


Data Specification:  ``[dict; keys: [('Indent Region', 'indent-region'), ('Outdent Region', 'outdent-region'), ('Indent To Match', 'indent-to-match'), ('Comment out Region', 'comment-out-region'), ('Uncomment out Region', 'uncomment-out-region')], values: [('Always Select', 'always-select'), ('Retain Select', 'retain-select'), ('Never Select', 'never-select')]]``


Default Value:  ``{'indent-region': 'retain-select', 'outdent-region': 'retain-select', 'indent-to-match': 'retain-select', 'comment-out-region': 'retain-select', 'uncomment-out-region': 'retain-select'}``


Debugger
--------

**Integer Display Mode**

Select the display style for integer values.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Integer Display Mode <script:show_preferences_gui#prefname="debug.default-integer-mode">`__
~~~


Internal Name:  ``debug.default-integer-mode``


Data Specification:  ``[dec, hex, oct]``


Default Value:  ``dec``

**Hover Over Symbols**

Enable to display debug data values for any symbol on the editor when the mouse cursor hovers over it.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Hover Over Symbols <script:show_preferences_gui#prefname="debug.hover-over-symbols">`__
~~~


Internal Name:  ``debug.hover-over-symbols``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Hover Over Selection**

Controls whether debug values are shown when the mouse hovers over a selection in the editor.  This may be disabled, enabled for symbols (like x.y.z) only, or enabled for all selections including function or methods calls.  WARNING:  Enabling evaluation of any selection may result in function or method calls that have side effects such as altering the program state or even making unintended database or disk accesses!

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Hover Over Selection <script:show_preferences_gui#prefname="debug.hover-over-selections">`__
~~~


Internal Name:  ``debug.hover-over-selections``


Data Specification:  ``[0, 1, all]``


Default Value:  ``1``

**Run Marker Color**

The color of the text highlight used for the run position during debugging

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Run Marker Color <script:show_preferences_gui#prefname="debug.debug-marker-color">`__
~~~


Internal Name:  ``debug.debug-marker-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Run Marker Alpha**

Select transparency (0-160) of the text highlight used for the run position during debugging

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Run Marker Alpha <script:show_preferences_gui#prefname="debug.run-marker-alpha">`__
~~~


Internal Name:  ``debug.run-marker-alpha``


Data Specification:  ``[None or <type int>]``


Default Value:  ``None``

**Active Range Color**

The color of the active range of code used for quick evaluation in the Python Shell or Debug Console.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Active Range Color <script:show_preferences_gui#prefname="debug.active-range-color">`__
~~~


Internal Name:  ``debug.active-range-color``


Data Specification:  ``[None or [tuple length 3 of: [from 0 to 255], [from 0 to 255], [from 0 to 255]]]``


Default Value:  ``None``

**Line Threshold**

Defines the character length threshold under which a value will always be shown on a single line, even if the value is a complex type like a list or dict.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Line Threshold <script:show_preferences_gui#prefname="debug.line-threshold">`__
~~~


Internal Name:  ``debug.line-threshold``


Data Specification:  ``<type int>``


Default Value:  ``95``

**Show Debug Environment Dialog**

Controls whether the Debug Environment dialog is shown before each debug run:  Either never show the dialog or show it only if 'Show this dialog before each run' is checked in the launch file's or named entry point's properties.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Show Debug Environment Dialog <script:show_preferences_gui#prefname="debug.show-args-dialog">`__
~~~


Internal Name:  ``debug.show-args-dialog``


Data Specification:  ``[never, per-file]``


Default Value:  ``per-file``

**Indicate Project Files in Stack**

Enable to indicate projects files in the the debug stack, in the stack selector, Stack Data, and Exception tools.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Indicate Project Files in Stack <script:show_preferences_gui#prefname="debug.indicate-project-files">`__
~~~


Internal Name:  ``debug.indicate-project-files``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``


* **Processes**

**Enable Multi-Process Debugging**

Enable multi-process debugging.  When disabled, Wing will only accept one debug connection at a time.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Processes > Enable Multi-Process Debugging <script:show_preferences_gui#prefname="debug.multi-process-debug">`__
~~~


Internal Name:  ``debug.multi-process-debug``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Switch to Stopped Processes**

When to automatically switch the currently active debug process to a process that reaches a breakpoint or exception.  The default Switch to Most Recently Launched Process Group switches only if there is no other debug process active or if the process belongs to the most recently debug session started from the IDE (this does not include processes that attach using wingdbstub).

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Processes > Switch to Stopped Processes <script:show_preferences_gui#prefname="debug.multi-process-switch">`__
~~~


Internal Name:  ``debug.multi-process-switch``


Data Specification:  ``[none, launched, always]``


Default Value:  ``launched``

**Debug Child Processes**

Enable debugging sub-processes.  When disabled, Wing will only debug the initially launched parent process.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Processes > Debug Child Processes <script:show_preferences_gui#prefname="debug.multi-process-debug-sub-processes">`__
~~~


Internal Name:  ``debug.multi-process-debug-sub-processes``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Replace sys.executable**

Enable replacement of sys.executable so that processes launched using that value will be debugged.  This must be enabled in order to debug child processes created with the multiprocessing module.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Processes > Replace sys.executable <script:show_preferences_gui#prefname="debug.multi-process-replace-sys-executable">`__
~~~


Internal Name:  ``debug.multi-process-replace-sys-executable``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Maximum Process Count**

Maximum number of debug processes that can connect to Wing at once.  After the limit is reached, Wing accepts no additional connections until some processes detach or exit.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Processes > Maximum Process Count <script:show_preferences_gui#prefname="debug.multi-process-maximum">`__
~~~


Internal Name:  ``debug.multi-process-maximum``


Data Specification:  ``<type int>``


Default Value:  ``50``

**Debug Multiple Tests at Once**

Enable debugging more than one unit test at once.  When enabled, the Debug/Abort button in the Testing tool alters according to which test is selected.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Processes > Debug Multiple Tests at Once <script:show_preferences_gui#prefname="debug.multi-process-multiple-tests">`__
~~~


Internal Name:  ``debug.multi-process-multiple-tests``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Debug Multiple Instances of a Named Entry Point**

Enable debugging more than one instance of a named entry point.  When disabled, any existing debug process for a named entry point will be terminated when it is debugged.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Processes > Debug Multiple Instances of a Named Entry Point <script:show_preferences_gui#prefname="debug.multi-process-multiple-entry-points">`__
~~~


Internal Name:  ``debug.multi-process-multiple-entry-points``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``


* **Exceptions**

**Report Exceptions**

Controls how Wing reports exceptions that are raised by your debug process.  By default, Wing shows exceptions at the time that the exception traceback would normally be printed.  Alternatively, Wing can try to predict which exceptions are unhandled, and stop immediately when unhandled exceptions are raised so that any finally clauses can be stepped through in the debugger. Wing can also stop on all exceptions (even if handled) immediately when they are raised, or it can wait to report fatal exceptions as the debug process terminates.  In the latter case Wing makes a best effort to stop before the debug process exits or at least to report the exception post-mortem, but one or both may fail if working with externally launched debug processes.  In that case, we recommend using When Printed exception reporting mode.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Exceptions > Report Exceptions <script:show_preferences_gui#prefname="debug.exception-mode">`__
~~~


Internal Name:  ``debug.exception-mode``


Data Specification:  ``[unhandled, never, always, printed]``


Default Value:  ``printed``

**Report Logged Exceptions In When Printed Mode**

Controls whether to stop on exceptions logged with logging.exception if the exception mode is set to 'When Printed'

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Exceptions > Report Logged Exceptions In When Printed Mode <script:show_preferences_gui#prefname="debug.stop-on-logged-exception">`__
~~~


Internal Name:  ``debug.stop-on-logged-exception``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Stop on SystemExit**

Controls whether the debugger stops when a SystemExit exception is raised. Always Stop reports all SystemExit exceptions. Stop on Non-Zero errno only reports SystemExit when the exit code is non-zero. Never Stop ignores all SystemExit exceptions.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Exceptions > Stop on SystemExit <script:show_preferences_gui#prefname="debug.stop-on-system-exit">`__
~~~


Internal Name:  ``debug.stop-on-system-exit``


Data Specification:  ``[always, nonzero, never]``


Default Value:  ``never``

**Never Report**

Names of builtin exceptions to never report, even if the exception is not handled.  This list takes precedence over the Always Report preference and the Report Exceptions preference when it is set to a value other than Always Immediately.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Exceptions > Never Report <script:show_preferences_gui#prefname="debug.never-stop-exceptions">`__
~~~


Internal Name:  ``debug.never-stop-exceptions``


Data Specification:  ``[tuple of: <type str>]``


Default Value:  ``['GeneratorExit']``

**Always Report**

Names of builtin exceptions to (nearly) always report.  These exceptions are not reported only if they are explicitly caught by the specific subclass in the same frame in which they are raised.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Exceptions > Always Report <script:show_preferences_gui#prefname="debug.always-stop-exceptions">`__
~~~


Internal Name:  ``debug.always-stop-exceptions``


Data Specification:  ``[tuple of: <type str>]``


Default Value:  ``['AssertionError']``


* **I/O**

**Debug I/O Encoding**

Encoding of input/output in the Debug I/O panel

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > I/O > Debug I/O Encoding <script:show_preferences_gui#prefname="debug.debug-io-encoding">`__
~~~


Internal Name:  ``debug.debug-io-encoding``


Data Specification:  ``[None or [Console default (UTF-8), None, Unicode (UTF-16) utf-16, Unicode (UTF-16, big endian) utf-16-be, Unicode (UTF-16, little endian) utf-16-le, Unicode (UTF-7) utf-7, Unicode (UTF-8) utf-8, Arabic iso8859-6, Baltic Languages iso8859-13, Baltic Languages iso8859-4, Celtic Languages iso8859-14, Central and Eastern European iso8859-2, Cyrillic Languages iso8859-5, Esperanto and Maltese iso8859-3, Greek iso8859-7, Hebrew iso8859-8, Nordic Languages iso8859-10, Turkish iso8859-9, Western European iso8859-15, Western European latin-1, Arabic cp1256, Arabic cp864, Baltic Languages cp1257, Baltic Languages cp775, Canadian English/French cp863, Central and Eastern European cp1250, Central and Eastern European cp852, Central and Eastern European mac-latin2, Chinese (PRC) big5hkscs, Chinese (PRC) gb18030, Chinese (PRC) gb2312, Chinese (PRC) gbk, Chinese (PRC) hz, Chinese (ROC) big5, Chinese (ROC) cp950, Cyrillic Languages cp1251, Cyrillic Languages cp855, Cyrillic Languages mac-cyrillic, Danish, Norwegian cp865, English ascii, Greek cp1253, Greek cp737, Greek cp869, Greek cp875, Greek mac-greek, Hebrew cp1255, Hebrew cp424, Hebrew cp856, Hebrew cp862, Icelandic cp861, Icelandic mac-iceland, Japanese cp932, Japanese euc-jis-2004, Japanese euc-jisx0213, Japanese euc-jp, Japanese iso-2022-jp, Japanese iso-2022-jp-1, Japanese iso-2022-jp-2, Japanese iso-2022-jp-2004, Japanese iso-2022-jp-3, Japanese iso-2022-jp-ext, Japanese shift-jis, Japanese shift-jis-2004, Japanese shift-jisx0213, Korean cp949, Korean iso-2022-kr, Korean johab, Portuguese cp860, Russian koi8-r, Thai cp874, Turkish cp1026, Turkish cp1254, Turkish cp857, Turkish mac-turkish, US, Australia, New Zealand, S. Africa cp437, US, Canada, and Others cp037, Ukrainian koi8-u, Urdu cp1006, Vietnamese cp1258, Western European cp1140, Western European cp1252, Western European cp500, Western European cp850, Western European mac-roman]]``


Default Value:  ``utf_8``

**Flush I/O Periodically**

Controls when the debugger periodically flushes I/O sent to sys.stdout and sys.stderr.  Doing so may deadlock in some code. Not doing so may not display text that has been output without newline.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > I/O > Flush I/O Periodically <script:show_preferences_gui#prefname="debug.flush-io">`__
~~~


Internal Name:  ``debug.flush-io``


Data Specification:  ``[Always, Only if Single-Threaded, Never]``


Default Value:  ``single-thread``

**Shell Encoding**

Encoding of input/output in the integrated Python Shell and Debug Console

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > I/O > Shell Encoding <script:show_preferences_gui#prefname="debug.debug-probe-encoding">`__
~~~


Internal Name:  ``debug.debug-probe-encoding``


Data Specification:  ``[None or [Use default stdin / stdout encoding, None, Unicode (UTF-16) utf-16, Unicode (UTF-16, big endian) utf-16-be, Unicode (UTF-16, little endian) utf-16-le, Unicode (UTF-7) utf-7, Unicode (UTF-8) utf-8, Arabic iso8859-6, Baltic Languages iso8859-13, Baltic Languages iso8859-4, Celtic Languages iso8859-14, Central and Eastern European iso8859-2, Cyrillic Languages iso8859-5, Esperanto and Maltese iso8859-3, Greek iso8859-7, Hebrew iso8859-8, Nordic Languages iso8859-10, Turkish iso8859-9, Western European iso8859-15, Western European latin-1, Arabic cp1256, Arabic cp864, Baltic Languages cp1257, Baltic Languages cp775, Canadian English/French cp863, Central and Eastern European cp1250, Central and Eastern European cp852, Central and Eastern European mac-latin2, Chinese (PRC) big5hkscs, Chinese (PRC) gb18030, Chinese (PRC) gb2312, Chinese (PRC) gbk, Chinese (PRC) hz, Chinese (ROC) big5, Chinese (ROC) cp950, Cyrillic Languages cp1251, Cyrillic Languages cp855, Cyrillic Languages mac-cyrillic, Danish, Norwegian cp865, English ascii, Greek cp1253, Greek cp737, Greek cp869, Greek cp875, Greek mac-greek, Hebrew cp1255, Hebrew cp424, Hebrew cp856, Hebrew cp862, Icelandic cp861, Icelandic mac-iceland, Japanese cp932, Japanese euc-jis-2004, Japanese euc-jisx0213, Japanese euc-jp, Japanese iso-2022-jp, Japanese iso-2022-jp-1, Japanese iso-2022-jp-2, Japanese iso-2022-jp-2004, Japanese iso-2022-jp-3, Japanese iso-2022-jp-ext, Japanese shift-jis, Japanese shift-jis-2004, Japanese shift-jisx0213, Korean cp949, Korean iso-2022-kr, Korean johab, Portuguese cp860, Russian koi8-r, Thai cp874, Turkish cp1026, Turkish cp1254, Turkish cp857, Turkish mac-turkish, US, Australia, New Zealand, S. Africa cp437, US, Canada, and Others cp037, Ukrainian koi8-u, Urdu cp1006, Vietnamese cp1258, Western European cp1140, Western European cp1252, Western European cp500, Western European cp850, Western European mac-roman]]``


Default Value:  ``utf_8``

**Pretty Print in Shells**

Enable to use pprint.pprint to display values in the Python Shell and Debug Console.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > I/O > Pretty Print in Shells <script:show_preferences_gui#prefname="debug.pretty-print-in-shells">`__
~~~


Internal Name:  ``debug.pretty-print-in-shells``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**OS Commands Encoding**

Default encoding of sub-process input/output when run in the OS Commands panel.  This can be overridden on a per-command basis, in each command's properties.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > I/O > OS Commands Encoding <script:show_preferences_gui#prefname="consoles.encoding">`__
~~~


Internal Name:  ``consoles.encoding``


Data Specification:  ``[None or [Console default (UTF-8), None, Unicode (UTF-16) utf-16, Unicode (UTF-16, big endian) utf-16-be, Unicode (UTF-16, little endian) utf-16-le, Unicode (UTF-7) utf-7, Unicode (UTF-8) utf-8, Arabic iso8859-6, Baltic Languages iso8859-13, Baltic Languages iso8859-4, Celtic Languages iso8859-14, Central and Eastern European iso8859-2, Cyrillic Languages iso8859-5, Esperanto and Maltese iso8859-3, Greek iso8859-7, Hebrew iso8859-8, Nordic Languages iso8859-10, Turkish iso8859-9, Western European iso8859-15, Western European latin-1, Arabic cp1256, Arabic cp864, Baltic Languages cp1257, Baltic Languages cp775, Canadian English/French cp863, Central and Eastern European cp1250, Central and Eastern European cp852, Central and Eastern European mac-latin2, Chinese (PRC) big5hkscs, Chinese (PRC) gb18030, Chinese (PRC) gb2312, Chinese (PRC) gbk, Chinese (PRC) hz, Chinese (ROC) big5, Chinese (ROC) cp950, Cyrillic Languages cp1251, Cyrillic Languages cp855, Cyrillic Languages mac-cyrillic, Danish, Norwegian cp865, English ascii, Greek cp1253, Greek cp737, Greek cp869, Greek cp875, Greek mac-greek, Hebrew cp1255, Hebrew cp424, Hebrew cp856, Hebrew cp862, Icelandic cp861, Icelandic mac-iceland, Japanese cp932, Japanese euc-jis-2004, Japanese euc-jisx0213, Japanese euc-jp, Japanese iso-2022-jp, Japanese iso-2022-jp-1, Japanese iso-2022-jp-2, Japanese iso-2022-jp-2004, Japanese iso-2022-jp-3, Japanese iso-2022-jp-ext, Japanese shift-jis, Japanese shift-jis-2004, Japanese shift-jisx0213, Korean cp949, Korean iso-2022-kr, Korean johab, Portuguese cp860, Russian koi8-r, Thai cp874, Turkish cp1026, Turkish cp1254, Turkish cp857, Turkish mac-turkish, US, Australia, New Zealand, S. Africa cp437, US, Canada, and Others cp037, Ukrainian koi8-u, Urdu cp1006, Vietnamese cp1258, Western European cp1140, Western European cp1252, Western European cp500, Western European cp850, Western European mac-roman]]``


Default Value:  ``None``

**Use External Console**

Selects whether to use the integrated Debug I/O tool for debug process input/output or an external terminal window.  Use an external window if your debug process depends on details of the command prompt environment for cursor movement, color text, etc.  External consoles only work for locally run code.  Remote debugging always uses the Debug I/O tool.  To debug code running remotely in an external console, use wingdbstub to initiate debug.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > I/O > Use External Console <script:show_preferences_gui#prefname="debug.external-console">`__
~~~


Internal Name:  ``debug.external-console``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**External Console Waits on Exit**

Determines whether to leave up the console after normal program exit, or to close the console right away in all cases.  This is only relevant when running with an external native console instead of using the integrated Debug I/O tool.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > I/O > External Console Waits on Exit <script:show_preferences_gui#prefname="debug.persist-console">`__
~~~


Internal Name:  ``debug.persist-console``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**External Consoles**

A list of the terminal programs that are used with debug processes when running with an external console.  Each is tried in turn until one is found to exist.  If just the name is given, Wing will look for each first on the PATH and then in likely places.  Specify the full path (starting with "/") to use a specific executable.  If program arguments are specified, they must end with the argument that indicates that the rest of arguments are the program to run in the terminal.  If the program name starts with ${WINGHOME} , ${WINGHOME} is replaced by the Wing install directory.  On macOS if the program name ends is .applescript, the environment is loaded from a file before starting the debugger.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > I/O > External Consoles <script:show_preferences_gui#prefname="debug.x-terminal">`__
~~~


Internal Name:  ``debug.x-terminal``


Data Specification:  ``[tuple of: <type str>]``


Default Value:  ``['gnome-terminal "--title=Wing Debug Process" -x', 'xterm -T "Wing Debug Process" -e', 'konsole -T "Wing Debug Process" -e', 'rxvt -T "Wing Debug Process" -e']``


* **Data Display**

**Show __name Protected Variables**

Controls whether the debugger shows protected variables (with one leadingunderscore) in the Stack Data view.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Data Display > Show __name Protected Variables <script:show_preferences_gui#prefname="debug.show-protected-variables">`__
~~~


Internal Name:  ``debug.show-protected-variables``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Show ____name Private Variables**

Controls whether the debugger shows private variables (with two leadingunderscores) in the Stack Data view.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Data Display > Show ____name Private Variables <script:show_preferences_gui#prefname="debug.show-private-variables">`__
~~~


Internal Name:  ``debug.show-private-variables``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Show ____name____ Special Variables**

Controls whether the debugger shows special variables (with two leadingand two trailing underscores) in the Stack Data view.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Data Display > Show ____name____ Special Variables <script:show_preferences_gui#prefname="debug.show-special-variables">`__
~~~


Internal Name:  ``debug.show-special-variables``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Show Memory Addresses**

Controls whether the debugger shows memory addresses as part of the display of object instances.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Data Display > Show Memory Addresses <script:show_preferences_gui#prefname="debug.show-memory-addresses">`__
~~~


Internal Name:  ``debug.show-memory-addresses``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Huge List Threshold**

Defines the length threshold over which a list, dict, or other complex type will be considered too large to show in the debugger.  If this is set too large, the debugger will time out (see the Network Timeout preference)

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Data Display > Huge List Threshold <script:show_preferences_gui#prefname="debug.huge-list-threshold">`__
~~~


Internal Name:  ``debug.huge-list-threshold``


Data Specification:  ``<type int>``


Default Value:  ``2000``

**Huge String Threshold**

Defines the length over which a string is considered too large to fetch for display in the debugger.  If this is set too large, the debugger will time out (see the Network Timeout preference).

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Data Display > Huge String Threshold <script:show_preferences_gui#prefname="debug.huge-string-threshold">`__
~~~


Internal Name:  ``debug.huge-string-threshold``


Data Specification:  ``<type int>``


Default Value:  ``64000``

**Show Data Warnings**

Controls whether or not time out, huge value, and error handling value errors are displayed by the debugger the first time they are encountered in each run of Wing.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Data Display > Show Data Warnings <script:show_preferences_gui#prefname="debug.show-debug-data-warnings">`__
~~~


Internal Name:  ``debug.show-debug-data-warnings``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``


* **Data Filters**

**Omit Types**

Lists types for which values are never shown by the debugger.  The strings here are compared with type(value).__name__ and the value is omitted if a match is found.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Data Filters > Omit Types <script:show_preferences_gui#prefname="debug.omit-types">`__
~~~


Internal Name:  ``debug.omit-types``


Data Specification:  ``[tuple of: <type str>]``


Default Value:  ``('function', 'builtin_function_or_method', 'class', 'classobj', 'instance method', 'type', 'module', 'ufunc', 'cython_function_or_method', 'wrapper_descriptor', 'method_descriptor', 'methoddescriptor', 'member_descriptor', 'classmethod', 'staticmethod')``

**Omit Names**

Defines variable/key names for which values are never shown by the debugger.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Data Filters > Omit Names <script:show_preferences_gui#prefname="debug.omit-names">`__
~~~


Internal Name:  ``debug.omit-names``


Data Specification:  ``[tuple of: <type str>]``


Default Value:  ``()``

**Do Not Expand**

Lists types for which values should never be probed for contents. These are types that are known to crash when the debugger probes them because they contain buggy data value extraction code.  These values are instead shown as an opaque value with hex object instance id and are never accessed for runtime introspection.  The strings here are compared with type(value).__name__ and a value is not probed if a match is found.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Data Filters > Do Not Expand <script:show_preferences_gui#prefname="debug.no-probe-types">`__
~~~


Internal Name:  ``debug.no-probe-types``


Data Specification:  ``[tuple of: <type str>]``


Default Value:  ``('GdkColormap', 'IOBTree', 'JPackage', 'cython_function_or_method')``


* **Introspection**

**Resolve Properties**

Set to show property values in the debug data views.  This should be used with caution.  It enables invocation of the fget() method on the property, which in some code bases can execute unwanted code, make unexpected changes to runtime state, hang on lengthy computations, trigger thread deadlocks, or  crash on buggy user code while debug data is being displayed in the IDE.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Introspection > Resolve Properties <script:show_preferences_gui#prefname="debug.resolve-properties">`__
~~~


Internal Name:  ``debug.resolve-properties``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Allow Calls in Data Inspection**

Enable to allow Python code and other dynamic calls to be invoked while inspecting data in the debugger, for display in any part of the IDE's user interface.  This should be used with caution because it can cause the debug process to execute unwanted code, make unexpected changes to runtime state, hang on lengthy computations, deadlock threads, or crash in buggy code.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Introspection > Allow Calls in Data Inspection <script:show_preferences_gui#prefname="debug.allow-dynamic-introspection">`__
~~~


Internal Name:  ``debug.allow-dynamic-introspection``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Call Python ____repr____ Methods**

Allow __repr__ methods implemented in Python to be invoked. Disable this if the __repr__ methods take too long to complete or fail due to other bugs.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Introspection > Call Python ____repr____ Methods <script:show_preferences_gui#prefname="debug.allow-bytecode-repr">`__
~~~


Internal Name:  ``debug.allow-bytecode-repr``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Inspect Base Classes**

Whether to inspect base classes for class attributes.  Disable this to work around crashing in packages such as openerp and odoo.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Introspection > Inspect Base Classes <script:show_preferences_gui#prefname="debug.max-base-classes">`__
~~~


Internal Name:  ``debug.max-base-classes``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``


* **Listening**

**Accept Debug Connections**

Controls whether or not the debugger listens for connections from an externally launched program. This should be enabled when the debug program is not launched by the IDE.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Listening > Accept Debug Connections <script:show_preferences_gui#prefname="debug.passive-listen">`__
~~~


Internal Name:  ``debug.passive-listen``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Kill Externally Launched Processes**

Enable or disable terminating debug processes that were launched from outside of the IDE.  When disabled, Wing just detaches from the process, leaving it running.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Listening > Kill Externally Launched Processes <script:show_preferences_gui#prefname="debug.enable-kill-external">`__
~~~


Internal Name:  ``debug.enable-kill-external``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Server Host**

Determines the network interface on which the debugger listens for connections.  This can be a symbolic name, an IP address, or left unspecified to indicate that the debugger should listen on all valid network interfaces on the machine.  Note that when a debug session is launched from within the IDE (with the Run button), it always connects from the loopback interface (127.0.0.1)

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Listening > Server Host <script:show_preferences_gui#prefname="debug.network-server">`__
~~~


Internal Name:  ``debug.network-server``


Data Specification:  ``[None or <type str>]``


Default Value:  ``None``

**Server Port**

Determines the TCP/IP port on which the IDE will listen for the connection from the debug process.  This needs to be unique for each developer working on a given host.  The debug process, if launched from outside of the IDE, needs to be told the value specified here using kWingHostPort inside wingdbstub.py or by WINGDB_HOSTPORT environment variable before importing wingdbstub in the debug process.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Listening > Server Port <script:show_preferences_gui#prefname="debug.network-port">`__
~~~


Internal Name:  ``debug.network-port``


Data Specification:  ``[from 0 to 65535]``


Default Value:  ``50005``


* **Network**

**Use Digests to Identify Files**

Controls whether to build an inferred location map from file digest matches that are found locally when debugging files on a remote host.  This allows the debugger to find files that are not in the project and were not found to be imported by static analysis, or that are still waiting to be scanned.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Network > Use Digests to Identify Files <script:show_preferences_gui#prefname="debug.use-digests-to-identify-files">`__
~~~


Internal Name:  ``debug.use-digests-to-identify-files``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Warn About Ambigious Digest Matches**

Controls whether to show a dialog when the debugger detects a remote file that matches more than one local file.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Network > Warn About Ambigious Digest Matches <script:show_preferences_gui#prefname="debug.show-multiple-local-files">`__
~~~


Internal Name:  ``debug.show-multiple-local-files``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Location Map**

Defines a mapping between the remote and local locations of files for host-to-host debugging.  This is used only for manual remote debug configuration and is ignored when debug is controlled by a remote host configuration.  For each specific IP address or IP address with wildcards (e.g. 10.1.1.*), a remote and local prefix is given. This should be used when full paths of files on the remote host do not match those for the same files on the local host.  Wing assumes an external file server or synchronization protocol is in use and does not itself transfer the files.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Network > Location Map <script:show_preferences_gui#prefname="debug.location-map">`__
~~~


Internal Name:  ``debug.location-map``


Data Specification:  ``[dict; keys: <ip4 address #.#.#.#>, values: [None or [list of: [tuple length 2 of: <type str>, <type str>]]]]``


Default Value:  ``{'127.0.0.1': None}``

**Connection Keep Alive**

Number of seconds between keep-alive messages sent to the debug process so that the connection doesn't close due to inactivity.  Use a value <= 0 to disable the sending of keep-alive messages

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Network > Connection Keep Alive <script:show_preferences_gui#prefname="debug.send-keep-alive-seconds">`__
~~~


Internal Name:  ``debug.send-keep-alive-seconds``


Data Specification:  ``<type int>``


Default Value:  ``60``

**Network Timeout**

Controls the amount of time that the IDE will wait for the debug process to respond before it gives up.  This protects the IDE from freezing up if your program running within the debug process crashes or becomes unavailable. It must also be taken into account when network connections are slow or if sending large data values (see the Huge List Threshold and Hug String Threshold preferences).

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Network > Network Timeout <script:show_preferences_gui#prefname="debug.network-timeout">`__
~~~


Internal Name:  ``debug.network-timeout``


Data Specification:  ``<type float>, <type int>``


Default Value:  ``20``

**Close Connection on Timeout**

Controls whether the debugger will close the connection after any data handling timeout.  This reduces the potential for hanging on data handling issues, but increases the chances the debug connection will be unnecessarily closed if any inspection of data takes more than the configured timeout to complete.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Network > Close Connection on Timeout <script:show_preferences_gui#prefname="debug.close-on-timeout">`__
~~~


Internal Name:  ``debug.close-on-timeout``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Allowed Hosts**

Sets which hosts are allowed to connect to the debugger when it is listening for externally launched programs. Host names, specific IP numbers, or IP number dotted quad masks with * to match anything (e.g. 10.1.1.*) may be used. This is used only for manual remote debug configuration and is ignored when debug is controlled by a remote host configuration.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Network > Allowed Hosts <script:show_preferences_gui#prefname="debug.passive-hosts">`__
~~~


Internal Name:  ``debug.passive-hosts``


Data Specification:  ``[tuple of: <type str>]``


Default Value:  ``('*.*.*.*',)``

**Common Attach Hosts**

List of host/port combinations that should be included by default in the attach request list shown with Attach to Process in the Debug menu, in addition to those that are registered at runtime.  These are used primarily with manual remote debug configuration, and are not necessary when debug is controlled by a remote host configuration. This value corresponds with kAttachPort configured in wingdbstub.py or by WINGDB_ATTACHPORT environment variable before importing wingdbstub in the debug process.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Network > Common Attach Hosts <script:show_preferences_gui#prefname="debug.attach-defaults">`__
~~~


Internal Name:  ``debug.attach-defaults``


Data Specification:  ``[tuple of: [tuple length 2 of: <type str>, [from 0 to 65535]]]``


Default Value:  ``(('127.0.0.1', 50015),)``


* **Shells**

**Enable Debugging**

Enables debugging code executed in the Python Shell or Debug Console.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Shells > Enable Debugging <script:show_preferences_gui#prefname="debug.debug-shells">`__
~~~


Internal Name:  ``debug.debug-shells``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Enable Recursive Prompt**

Enables recursive debugging in the Python Shell and Debug Console.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Shells > Enable Recursive Prompt <script:show_preferences_gui#prefname="debug.recursive">`__
~~~


Internal Name:  ``debug.recursive``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Pretty Print**

Enable to use pprint.pprint to display values in the Python Shell and Debug Console.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Shells > Pretty Print <script:show_preferences_gui#prefname="debug.pretty-print-in-shells">`__
~~~


Internal Name:  ``debug.pretty-print-in-shells``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Auto-Restart when Switch Projects**

Auto-restart the Python Shell when changing projects.  When this is disabled, the Python Shell will continue to use environment from the previously opened project.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Shells > Auto-Restart when Switch Projects <script:show_preferences_gui#prefname="debug.shell-auto-restart-proj-switch">`__
~~~


Internal Name:  ``debug.shell-auto-restart-proj-switch``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Auto-Restart when Evaluate File**

Auto-restart the Python Shell before a file is evaluated within it.  When this is disabled, be aware that previously defined symbols will linger in the Python Shell environment.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Shells > Auto-Restart when Evaluate File <script:show_preferences_gui#prefname="debug.shell-auto-restart-before-eval">`__
~~~


Internal Name:  ``debug.shell-auto-restart-before-eval``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Prompt to Confirm Restart**

Whether to prompt when restarting the Python Shell as a result of restarting debugging.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Shells > Prompt to Confirm Restart <script:show_preferences_gui#prefname="debug.prompt-to-restart-python-shell-debug">`__
~~~


Internal Name:  ``debug.prompt-to-restart-python-shell-debug``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Filter History by Entered Prefix**

Enable to filter shell history traversal when something is entered prior to starting traversal.  When enabled, Wing will only show history items starting with the text between the start of the current item and the caret.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Shells > Filter History by Entered Prefix <script:show_preferences_gui#prefname="debug.filter-shell-history">`__
~~~


Internal Name:  ``debug.filter-shell-history``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Evaluate Only Whole Lines**

Evaluate whole lines from editor rather than the exact selection, when a selection from the editor is sent to the Python Shell tool.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Shells > Evaluate Only Whole Lines <script:show_preferences_gui#prefname="debug.shell-eval-whole-lines">`__
~~~


Internal Name:  ``debug.shell-eval-whole-lines``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Execute Pasted Lines in Shells Immediately**

Whether to always execute immediately after text is pasted into a shell. Note that if the number of lines exceed the pasted line threshold, the lines are immediately executed.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Shells > Execute Pasted Lines in Shells Immediately <script:show_preferences_gui#prefname="debug.shell-always-execute-on-paste">`__
~~~


Internal Name:  ``debug.shell-always-execute-on-paste``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Show Editor on Exceptions in Shells**

Controls whether the debugger raises source files to indicate exception locations encountered when working in the Debug Console, and other debugger tools.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Shells > Show Editor on Exceptions in Shells <script:show_preferences_gui#prefname="debug.raise-from-tools">`__
~~~


Internal Name:  ``debug.raise-from-tools``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Shells Ignore Editor Modes**

Set to False so that shells will act modal in the same way as editors when working with a modal key bindings such as that for VI.  When True, the shells always act as if in Insert mode.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Shells > Shells Ignore Editor Modes <script:show_preferences_gui#prefname="debug.shells-ignore-editor-modes">`__
~~~


Internal Name:  ``debug.shells-ignore-editor-modes``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``


* **Advanced**

**Termination Model**

How to terminate debug when a parent process or child process is terminated.  A process group includes any all parent and child processes, up to the initially launched process, including also grand-children and any other descendent process.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Advanced > Termination Model <script:show_preferences_gui#prefname="debug.multi-process-kill-model">`__
~~~


Internal Name:  ``debug.multi-process-kill-model``


Data Specification:  ``[leave-running, auto-kill-group, prompt]``


Default Value:  ``auto-kill-group``

**Ignore Unsynchronized Files**

Controls whether or not Wing ignores files that were not saved before starting debug or that have changed since they were loaded by the debug process.  Wing normally will warn of unsynchronized files since breakpoints may not be reached and stepping through the files may not work properly if lines have moved.  Checking this option turns off these warnings.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Advanced > Ignore Unsynchronized Files <script:show_preferences_gui#prefname="gui.ignore-unsaved-before-action">`__
~~~


Internal Name:  ``gui.ignore-unsaved-before-action``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**Step Past importlib Frames**

Controls where Wing ignores code inside of Python's importlib machinery when stepping through code.  When enabled, Step Into on an import statement continues until it reaches the top level of the module being imported (or results in ImportError or moves past the import if the module was already imported), and Step Out will skip over frames in importlib.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Advanced > Step Past importlib Frames <script:show_preferences_gui#prefname="debug.ignore-import-lib">`__
~~~


Internal Name:  ``debug.ignore-import-lib``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Use sys.stdin Wrapper**

Whether sys.stdin should be set a wrapper object for user input in the program being debugged.  The wrapper allows debug commands, such as pause, to be executed while the program is waiting for user input.  The wrapper may cause problems with multi-threaded programs that use C stdio functions to read directly from stdin and will be slower than the normal file object.However, turning this preference off means that your debug process will not pause or accept breakpoint changes while waiting for keyboard input, and any keyboard input that occurs as a side effect of commands typed in the Debug Console will happen in unmodified stdin instead (even though output will still appear in the Debug Console as always).

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Advanced > Use sys.stdin Wrapper <script:show_preferences_gui#prefname="debug.use-stdin-wrapper">`__
~~~


Internal Name:  ``debug.use-stdin-wrapper``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**When Build Fails**

Controls whether to start debugging if the defined build process fails

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Advanced > When Build Fails <script:show_preferences_gui#prefname="debug.debug-if-build-fails">`__
~~~


Internal Name:  ``debug.debug-if-build-fails``


Data Specification:  ``[None, 0, 1]``


Default Value:  ``None``

**Default Watch Style**

Sets the tracking style used when a value is double clicked in order to watch it.  Values may be tracked by symbolic name, by object reference and attribute by name, and by direct object reference.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Advanced > Default Watch Style <script:show_preferences_gui#prefname="debug.default-watch-style">`__
~~~


Internal Name:  ``debug.default-watch-style``


Data Specification:  ``[symbolic, parent-ref, ref]``


Default Value:  ``symbolic``

**Move Breakpoints to Valid Lines**

Whether to automatically move breakpoints to a valid position when they are placed on a line that will not be reached by the Python interpreter, such as within certain types of multi-line expressions.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Advanced > Move Breakpoints to Valid Lines <script:show_preferences_gui#prefname="debug.move-breakpoints">`__
~~~


Internal Name:  ``debug.move-breakpoints``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Show Breaks Moved Dialog**

Whether to show a dialog when a breakpoint is set on a different line than the selected on.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Advanced > Show Breaks Moved Dialog <script:show_preferences_gui#prefname="debug.show-breaks-moved-message">`__
~~~


Internal Name:  ``debug.show-breaks-moved-message``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Use Idle Thread**

Controls whether to use a thread in the debugger for idle processing.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Advanced > Use Idle Thread <script:show_preferences_gui#prefname="debug.use-idle-thread">`__
~~~


Internal Name:  ``debug.use-idle-thread``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Launch debugger for unsupported Python versions**

Controls whether unsupported Python versions can be launched.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Advanced > Launch debugger for unsupported Python versions <script:show_preferences_gui#prefname="debug.launch-unsupported-python-versions">`__
~~~


Internal Name:  ``debug.launch-unsupported-python-versions``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Use Legacy Tracer Core With Python 3.12+**

Controls whether to use the legacy debugger tracer core with Python 3.12+. The legacy tracer core is needed to debug Django templates.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Advanced > Use Legacy Tracer Core With Python 3.12+ <script:show_preferences_gui#prefname="debug.use-legacy-tracer-core">`__
~~~


Internal Name:  ``debug.use-legacy-tracer-core``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``


* **Diagnostics**

**Debug Internals Log File**

This is used to obtain verbose information about debugger internals in cases where you are having problems getting debugging working. The resulting log file can be emailed to support@wingware.com along with your bug report for interpretation. Logging can be disabled, or sent to stderr, stdout, or a file. When enabled, the debugger will run more slowly.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Diagnostics > Debug Internals Log File <script:show_preferences_gui#prefname="debug.logfile">`__
~~~


Internal Name:  ``debug.logfile``


Data Specification:  ``[one of: None, [<stderr>, <stdout>], <type str>]``


Default Value:  ``None``

**Extremely Verbose Internal Log**

This is used to turn on very verbose and detailed logging from the debugger.  This should only be enabled at the request of Wingware Technical Support and will drastically slow down the debugger.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Diagnostics > Extremely Verbose Internal Log <script:show_preferences_gui#prefname="debug.very-verbose-log">`__
~~~


Internal Name:  ``debug.very-verbose-log``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Python Shell Debug Log**

This is used to obtain verbose information about the Python Shell internals in cases where you are having problems getting it working.  The resulting log file can be emailed to support@wingware.com along with your bug report for interpretation. Logging can be disabled, or sent to stderr, stdout, or a file.  When enabled, the Python Shell will run more slowly.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Diagnostics > Python Shell Debug Log <script:show_preferences_gui#prefname="debug.shell-logfile">`__
~~~


Internal Name:  ``debug.shell-logfile``


Data Specification:  ``[one of: None, [<stderr>, <stdout>], <type str>]``


Default Value:  ``None``

**Extremely Verbose Python Shell Debug Log**

This is used to turn on very verbose and detailed logging from the Python Shell internals.  This should only be enabled at the request of Wingware Technical Support and will drastically slow down the Python Shell.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Debugger > Diagnostics > Extremely Verbose Python Shell Debug Log <script:show_preferences_gui#prefname="debug.very-verbose-shell-log">`__
~~~


Internal Name:  ``debug.very-verbose-shell-log``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``


Source Analysis
---------------

**Introspect Live Runtime**

Set to introspect live Python runtimes for information displayed in autocompletion, the Source Assistant, and debug data value tooltips.  Runtimes introspected include the Python Shell and live debug processes stopped at an exception or breakpoint.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Source Analysis > Introspect Live Runtime <script:show_preferences_gui#prefname="debug.introspect-in-shells">`__
~~~


Internal Name:  ``debug.introspect-in-shells``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**Typing Suspend Timeout**

Number of seconds between last key press and when analysis is re-enabled if analysis is to be suspended while typing occurs.  If <= 0, analysis is not suspended.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Source Analysis > Typing Suspend Timeout <script:show_preferences_gui#prefname="edit.suspend-analysis-timeout">`__
~~~


Internal Name:  ``edit.suspend-analysis-timeout``


Data Specification:  ``<type float>, <type int>``


Default Value:  ``1``

**Max Cache Size (MB)**

The maximum size of the disk cache in megabytes

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Source Analysis > Max Cache Size (MB) <script:show_preferences_gui#prefname="pysource.max-disk-cache-size">`__
~~~


Internal Name:  ``pysource.max-disk-cache-size``


Data Specification:  ``[from 100 to 100000]``


Default Value:  ``2000``

**Max Memory Buffers**

The maximum # of analysis info buffers that can be in-memory at once for files that are not open.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Source Analysis > Max Memory Buffers <script:show_preferences_gui#prefname="pysource.max-background-buffers">`__
~~~


Internal Name:  ``pysource.max-background-buffers``


Data Specification:  ``[from 50 to 300]``


Default Value:  ``80``

**Analyze Function and Method Calls**

Whether to analyze function calls and record the types of values passed as arguments to functions.  The disk cache should be cleared after this value is changed.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Source Analysis > Analyze Function and Method Calls <script:show_preferences_gui#prefname="pysource.analyze-function-calls">`__
~~~


Internal Name:  ``pysource.analyze-function-calls``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``


* **Advanced**

**Interface File Path**

Path to search for interface files for extension modules.  If directory name is relative, it will be interpreted as relative to the  user settings directory (USER_SETTINGS_DIR)

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Source Analysis > Advanced > Interface File Path <script:show_preferences_gui#prefname="pysource.interfaces-path">`__
~~~


Internal Name:  ``pysource.interfaces-path``


Data Specification:  ``[tuple of: <type str>]``


Default Value:  ``('pi-files',)``

**Scrape Extension Modules**

Enable to automatically load and introspect extension modules and other modules that cannot be statically analysed.  These modules are loaded in another process space and 'scraped' to obtain at least some analysis of the module's contents.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Source Analysis > Advanced > Scrape Extension Modules <script:show_preferences_gui#prefname="pysource.scrape-modules">`__
~~~


Internal Name:  ``pysource.scrape-modules``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Scraping Helper Snippets**

This is a dictionary from module name to Python code that should be executed before attempting to load extension modules for scraping.  This is needed in cases where the extension modules are designed to be loaded only after some configuration magic is performed.  For most extension modules, no extra configuration should be needed.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Source Analysis > Advanced > Scraping Helper Snippets <script:show_preferences_gui#prefname="pysource.scrape-config">`__
~~~


Internal Name:  ``pysource.scrape-config``


Data Specification:  ``[dict; keys: <type str>, values: <type str>]``


Default Value:  ``{'gtk': 'import pygtk\nvers = pygtk._get_available_versions().keys()\nvers.sort()\nvers.reverse()\nfor v in vers:\n  try:\n    pygtk.require(v)\n    break\n  except:\n    pass\n', 'gdk': 'import pygtk\nvers = pygtk._get_available_versions().keys()\nvers.sort()\nvers.reverse()\nfor v in vers:\n  try:\n    pygtk.require(v)\n    break\n  except:\n    pass\n', 'pango': 'import pygtk\nvers = pygtk._get_available_versions().keys()\nvers.sort()\nvers.reverse()\nfor v in vers:\n  try:\n    pygtk.require(v)\n    break\n  except:\n    pass\n', 'atk': 'import pygtk\nvers = pygtk._get_available_versions().keys()\nvers.sort()\nvers.reverse()\nfor v in vers:\n  try:\n    pygtk.require(v)\n    break\n  except:\n    pass\n', 'gobject': 'import pygtk\nvers = pygtk._get_available_versions().keys()\nvers.sort()\nvers.reverse()\nfor v in vers:\n  try:\n    pygtk.require(v)\n    break\n  except:\n    pass\n', 'wxpython': 'pass', 'Qt': 'try:\n  from PyQt4 import Qt\nexcept:\n  try:\n    from PyQt5 import Qt\n  except:\n    from PySide import Qt\n', 'QSci': 'try:\n  from PyQt4 import QSci\nexcept:\n  try:\n    from PyQt5 import QSci\n  except:\n    from PySide import QSci\n', 'QtAssistant': 'try:\n  from PyQt4 import QtAssistant\nexcept:\n  try:\n    from PyQt5 import QtAssistant\n  except:\n    from PySide import QtAssistant\n', 'QtCore': 'try:\n  from PyQt4 import QtCore\nexcept:\n  try:\n    from PyQt5 import QtCore\n  except:\n    from PySide import QtCore\n', 'QtDesigner': 'try:\n  from PyQt4 import QtDesigner\nexcept:\n  try:\n    from PyQt5 import QtDesigner\n  except:\n    from PySide import QtDesigner\n', 'QtGui': 'try:\n  from PyQt4 import QtGui\nexcept:\n  try:\n    from PyQt5 import QtGui\n  except:\n    from PySide import QtGui\n', 'QtHelp': 'try:\n  from PyQt4 import QtHelp\nexcept:\n  try:\n    from PyQt5 import QtHelp\n  except:\n    from PySide import QtHelp\n', 'QtNetwork': 'try:\n  from PyQt4 import QtNetwork\nexcept:\n  try:\n    from PyQt5 import QtNetwork\n  except:\n    from PySide import QtNetwork\n', 'QtOpenGL': 'try:\n  from PyQt4 import QtOpenGL\nexcept:\n  try:\n    from PyQt5 import QtOpenGL\n  except:\n    from PySide import QtOpenGL\n', 'QtScript': 'try:\n  from PyQt4 import QtScript\nexcept:\n  try:\n    from PyQt5 import QtScript\n  except:\n    from PySide import QtScript\n', 'QtScriptTools': 'try:\n  from PyQt4 import QtScriptTools\nexcept:\n  try:\n    from PyQt5 import QtScriptTools\n  except:\n    from PySide import QtScriptTools\n', 'QtSql': 'try:\n  from PyQt4 import QtSql\nexcept:\n  try:\n    from PyQt5 import QtSql\n  except:\n    from PySide import QtSql\n', 'QtSvg': 'try:\n  from PyQt4 import QtSvg\nexcept:\n  try:\n    from PyQt5 import QtSvg\n  except:\n    from PySide import QtSvg\n', 'QtTest': 'try:\n  from PyQt4 import QtTest\nexcept:\n  try:\n    from PyQt5 import QtTest\n  except:\n    from PySide import QtTest\n', 'QtWebKit': 'try:\n  from PyQt4 import QtWebKit\nexcept:\n  try:\n    from PyQt5 import QtWebKit\n  except:\n    from PySide import QtWebKit\n', 'QtXml': 'try:\n  from PyQt4 import QtXml\nexcept:\n  try:\n    from PyQt5 import QtXml\n  except:\n    from PySide import QtXml\n', 'QtXmlPatterns': 'try:\n  from PyQt4 import QtXmlPatterns\nexcept:\n  try:\n    from PyQt5 import QtXmlPatterns\n  except:\n    from PySide import QtXmlPatterns\n', 'QtUiTools': 'try:\n  from PyQt4 import QtUiTools\nexcept:\n  try:\n    from PyQt5 import QtUiTools\n  except:\n    from PySide import QtUiTools\n', 'QtDeclarative': 'try:\n  from PyQt4 import QtDeclarative\nexcept:\n  try:\n    from PyQt5 import QtDeclarative\n  except:\n    from PySide import QtDeclarative\n', 'QtWidgets': 'try:\n  from PyQt4 import QtWidgets\nexcept:\n  try:\n    from PyQt5 import QtWidgets\n  except:\n    from PySide import QtWidgets\n', '_gst': 'from gst import _gst', 'h5py': 'import h5py'}``

**Python Docs URL Prefix**

Prefix for Python Standard Library Documentation.  This should be in the form https://docs.python.org/library/ and Wing will append module and symbol specific to the given URL.  To use locally stored documentation, you must run a local web server since # bookmarks do not work in file: URLs.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Source Analysis > Advanced > Python Docs URL Prefix <script:show_preferences_gui#prefname="pysource.python-doc-url-prefix">`__
~~~


Internal Name:  ``pysource.python-doc-url-prefix``


Data Specification:  ``[None or <type int>]``


Default Value:  ``None``


Version Control
---------------

**Enable built-in version control**

Enable the integrated version control system.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Enable built-in version control <script:show_preferences_gui#prefname="versioncontrol.enable-non-script">`__
~~~


Internal Name:  ``versioncontrol.enable-non-script``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Save files without prompting**

Save without prompting before running version control commands.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Save files without prompting <script:show_preferences_gui#prefname="versioncontrol.save-without-prompting">`__
~~~


Internal Name:  ``versioncontrol.save-without-prompting``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Track changes made in project tool**

Track file add, remove, and rename operations made with Wing's Project view into the version control repository.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Track changes made in project tool <script:show_preferences_gui#prefname="versioncontrol.track-disk-operations">`__
~~~


Internal Name:  ``versioncontrol.track-disk-operations``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Automatically refresh status**

Watch disk for version control changes and refresh the Project view and Project Status accordingly.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Automatically refresh status <script:show_preferences_gui#prefname="versioncontrol.watch-disk">`__
~~~


Internal Name:  ``versioncontrol.watch-disk``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Enable diagnostic logging**

Log all commands to ide.log in the user settings directory.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Enable diagnostic logging <script:show_preferences_gui#prefname="versioncontrol.log-all-commands">`__
~~~


Internal Name:  ``versioncontrol.log-all-commands``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**Use Expanded Context for AI Commit Messages**

Enable to use expanded context, including whole files and not just the diff, when requesting and AI-generated commit message.  Expanded context adds cost but may produce better results.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Use Expanded Context for AI Commit Messages <script:show_preferences_gui#prefname="versioncontrol.expanded-ai-context">`__
~~~


Internal Name:  ``versioncontrol.expanded-ai-context``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``


* **Subversion**

**Active**

When Subversion version control support is active

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Subversion > Active <script:show_preferences_gui#prefname=".versioncontrol.svn.active">`__
~~~


Internal Name:  ``.versioncontrol.svn.active``


Data Specification:  ``[always-active, active-if-project-dir, not-active]``


Default Value:  ``active-if-project-dir``

**SVN Executable**

Executable command to run Subversion

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Subversion > SVN Executable <script:show_preferences_gui#prefname=".versioncontrol.svn.executable">`__
~~~


Internal Name:  ``.versioncontrol.svn.executable``


Data Specification:  ``<type str>``


Default Value:  ``svn``

**SVN Admin Executable**

Executable command to run svn

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Subversion > SVN Admin Executable <script:show_preferences_gui#prefname="versioncontrol.svn.svnadmin-executable">`__
~~~


Internal Name:  ``versioncontrol.svn.svnadmin-executable``


Data Specification:  ``<type str>``


Default Value:  ``svnadmin``

**Extra Global Arguments**

Extra arguments to pass to every command.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Subversion > Extra Global Arguments <script:show_preferences_gui#prefname="versioncontrol.svn.extra-global-args">`__
~~~


Internal Name:  ``versioncontrol.svn.extra-global-args``


Data Specification:  ``<type str>``


Default Value:  ``""``


* **Git**

**Active**

When Git version control support is active

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Git > Active <script:show_preferences_gui#prefname=".versioncontrol.git.active">`__
~~~


Internal Name:  ``.versioncontrol.git.active``


Data Specification:  ``[always-active, active-if-project-dir, not-active]``


Default Value:  ``active-if-project-dir``

**Git Executable**

Executable command to run Git

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Git > Git Executable <script:show_preferences_gui#prefname=".versioncontrol.git.executable">`__
~~~


Internal Name:  ``.versioncontrol.git.executable``


Data Specification:  ``<type str>``


Default Value:  ``git``

**Use --porcelain**

Use --porcelain output for git status

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Git > Use --porcelain <script:show_preferences_gui#prefname="versioncontrol.git.use-porcelain">`__
~~~


Internal Name:  ``versioncontrol.git.use-porcelain``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``


* **Mercurial**

**Active**

When Mercurial version control support is active

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Mercurial > Active <script:show_preferences_gui#prefname=".versioncontrol.hg.active">`__
~~~


Internal Name:  ``.versioncontrol.hg.active``


Data Specification:  ``[always-active, active-if-project-dir, not-active]``


Default Value:  ``active-if-project-dir``

**Mercurial Executable**

Executable command to run Mercurial

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Mercurial > Mercurial Executable <script:show_preferences_gui#prefname=".versioncontrol.hg.executable">`__
~~~


Internal Name:  ``.versioncontrol.hg.executable``


Data Specification:  ``<type str>``


Default Value:  ``hg``

**Extra Global Arguments**

Extra arguments to pass to every command.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Mercurial > Extra Global Arguments <script:show_preferences_gui#prefname="versioncontrol.hg.extra-global-args">`__
~~~


Internal Name:  ``versioncontrol.hg.extra-global-args``


Data Specification:  ``<type str>``


Default Value:  ``--encoding=utf8``

**Don't Find Unregistered Files**

Don't find unregistered files when scanning for file status. This can substantially reduce the time to scan large repositories.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Mercurial > Don't Find Unregistered Files <script:show_preferences_gui#prefname="versioncontrol.hg.dont-find-unregistered">`__
~~~


Internal Name:  ``versioncontrol.hg.dont-find-unregistered``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``


* **CVS**

**Active**

When CVS version control support is active

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > CVS > Active <script:show_preferences_gui#prefname=".versioncontrol.cvs.active">`__
~~~


Internal Name:  ``.versioncontrol.cvs.active``


Data Specification:  ``[always-active, active-if-project-dir, not-active]``


Default Value:  ``active-if-project-dir``

**CVS Executable**

Executable command to run CVS

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > CVS > CVS Executable <script:show_preferences_gui#prefname=".versioncontrol.cvs.executable">`__
~~~


Internal Name:  ``.versioncontrol.cvs.executable``


Data Specification:  ``<type str>``


Default Value:  ``cvs``

**Extra Global Arguments**

Extra arguments to pass to every command.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > CVS > Extra Global Arguments <script:show_preferences_gui#prefname="versioncontrol.cvs.extra-global-args">`__
~~~


Internal Name:  ``versioncontrol.cvs.extra-global-args``


Data Specification:  ``<type str>``


Default Value:  ``-z3``


* **Perforce**

**Active**

When Perforce version control support is active

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Perforce > Active <script:show_preferences_gui#prefname=".versioncontrol.perforce.active">`__
~~~


Internal Name:  ``.versioncontrol.perforce.active``


Data Specification:  ``[always-active, active-if-project-dir, not-active]``


Default Value:  ``not-active``

**Perforce Executable**

Executable command to run Perforce

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Perforce > Perforce Executable <script:show_preferences_gui#prefname=".versioncontrol.perforce.executable">`__
~~~


Internal Name:  ``.versioncontrol.perforce.executable``


Data Specification:  ``<type str>``


Default Value:  ``p4``

**Extra Global Arguments**

Extra arguments to pass to every command.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Perforce > Extra Global Arguments <script:show_preferences_gui#prefname="versioncontrol.perforce.extra-global-args">`__
~~~


Internal Name:  ``versioncontrol.perforce.extra-global-args``


Data Specification:  ``<type str>``


Default Value:  ``""``

**Don't Find Unregistered Files**

Don't find unregistered files when scanning for file status. This can substantially reduce the time to scan large repositories.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Version Control > Perforce > Don't Find Unregistered Files <script:show_preferences_gui#prefname="versioncontrol.perforce.dont-find-unregistered">`__
~~~


Internal Name:  ``versioncontrol.perforce.dont-find-unregistered``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``


Remote Development
------------------

**SSH Implementation**

The SSH implementation to use for remote development.  This is used to launch Wing's remote agent and to establish secure SSH tunnels for debugging on remote systems.  When searching on the PATH, Wing will look for OpenSSH's ssh.  If it cannot be found, the built-in SSH implementation is used instead.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Remote Development > SSH Implementation <script:show_preferences_gui#prefname="main.ssh-executable">`__
~~~


Internal Name:  ``main.ssh-executable``


Data Specification:  ``[None or <type str>]``


Default Value:  ``None``

**Allow Access to SSH User Agent**

Controls whether to allow access to an SSH user agent like OpenSSH's ssh-agent or PuTTY's pageant.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Remote Development > Allow Access to SSH User Agent <script:show_preferences_gui#prefname="main.use-ssh-agent">`__
~~~


Internal Name:  ``main.use-ssh-agent``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**SSH Timeout**

The maximum time in seconds to wait for SSH connections to be established.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Remote Development > SSH Timeout <script:show_preferences_gui#prefname="main.ssh-timeout">`__
~~~


Internal Name:  ``main.ssh-timeout``


Data Specification:  ``<type int>``


Default Value:  ``20``

**Hung Connection Timeout**

The maximum time in seconds to wait if a connection to a remote host is not responding.  Afterwards the connection is closed and retried.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Remote Development > Hung Connection Timeout <script:show_preferences_gui#prefname="main.hung-connection-threshold">`__
~~~


Internal Name:  ``main.hung-connection-threshold``


Data Specification:  ``<type int>``


Default Value:  ``30``

**Warn when Edit Active Remote Configuration**

Controls whether to show a warning before editing a remote host configuration that is currently in use.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Remote Development > Warn when Edit Active Remote Configuration <script:show_preferences_gui#prefname="main.show-remote-config-warning">`__
~~~


Internal Name:  ``main.show-remote-config-warning``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Write Remote Diagnostics to IDE Log**

Controls whether remote agent activity is directed into the IDE log instead of being written on the remote host.  This will slow down the remote agent and should only be enabled at the requestof Wingware Technical Support.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Remote Development > Write Remote Diagnostics to IDE Log <script:show_preferences_gui#prefname="main.write-remote-log-to-ide-log">`__
~~~


Internal Name:  ``main.write-remote-log-to-ide-log``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``


IDE Extension Scripting
-----------------------

**Auto-Reload Scripts on Save**

When enabled, Wing will automatically reload scripts that extend the IDE when they are edited and saved from the IDE.  This makes developing extension scripts for the IDE very fast, and should work in most cases.  Disable this when working on extension scripts that do not reload properly, such as those that reach through the scripting API extensively.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `IDE Extension Scripting > Auto-Reload Scripts on Save <script:show_preferences_gui#prefname="main.auto-reload-scripts">`__
~~~


Internal Name:  ``main.auto-reload-scripts``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**Search Path**

Specifies the directories in which Wing will look for user-defined scripts that extend the functionality of the IDE itself.  The directory names may contain environment variables in the $(envname) form.  Use $(WING:PROJECT_DIR) for the project directory.For each directory, Wing will load all found Python modules and packages, treating any function whose name starts with a letter (not _ or __) as a script-provided command.  Extension scripts found in files within directories later in the list will override scripts of the same name found earlier, except that scripts can never override commands that are defined internally in Wing itself (these are documented in the Command Reference in the users manual). See the Scripting and Extending chapter of the manual for more information on writing and using extension scripts.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `IDE Extension Scripting > Search Path <script:show_preferences_gui#prefname="main.script-path">`__
~~~


Internal Name:  ``main.script-path``


Data Specification:  ``[list of: <type str>]``


Default Value:  ``['USER_SETTINGS_DIR/scripts']``


Network
-------

**Use HTTPS to wingware.com**

Whether to use secure https (port 443) when accessing wingware.com for license activation, update checks, and submitting feedback or bug reports.  When disabled, http (port 80) is used instead.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Network > Use HTTPS to wingware.com <script:show_preferences_gui#prefname="main.secure-http-to-wingware">`__
~~~


Internal Name:  ``main.secure-http-to-wingware``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**HTTP Proxy Server**

Allows manual configuration of an http proxy to be used for feedback, bug reports, and license activation, all of which result in Wing connecting to wingware.com via http.  Leave user name and password blank if not required.

~~~if not WEBSITE and not PDF:
Preferences Dialog Path: `Network > HTTP Proxy Server <script:show_preferences_gui#prefname="main.http-proxy">`__
~~~


Internal Name:  ``main.http-proxy``


Data Specification:  ``[None or [tuple length 4 of: <type str>, <type int>, <type str>, <type str>]]``


Default Value:  ``None``


Internal Preferences
--------------------


Core Preferences
................

**main.autocheck-remote-agent-version**

When enabled, Wing will show a dialog offerring to update any remote agent that does not match Wing's version.


Internal Name:  ``main.autocheck-remote-agent-version``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**main.debug-break-on-critical**

If True and a gtk, gdk, or glib critical message is logged, Wing tries to start a C debugger and break at the current execution point


Internal Name:  ``main.debug-break-on-critical``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**main.extra-mime-type-comments**

This is a map from mime type to tuple of start/end comment characters for each mime type.  One entry should be added for each new mime type added with the main.extra-mime-types preference.


Internal Name:  ``main.extra-mime-type-comments``


Data Specification:  ``[dict; keys: <type str>, values: [tuple length 2 of: <type str>, <type str>]]``


Default Value:  ``{}``

**main.extra-mime-type-names**

This is a map from mime type to displayable name for that mime type; one entry should be added for each new mime type added with the main.extra-mime-types preference.


Internal Name:  ``main.extra-mime-type-names``


Data Specification:  ``[dict; keys: <type str>, values: <type str>]``


Default Value:  ``{}``

**main.help-font-zoom**

The amount by which to zoom font sizes in or out in the documentation viewer.


Internal Name:  ``main.help-font-zoom``


Data Specification:  ``<type float>``


Default Value:  ``1.0``

**main.ignored-update**

Used internally to keep track of latest version the user is not interested in


Internal Name:  ``main.ignored-update``


Data Specification:  ``[tuple of: <type int>]``


Default Value:  ``(0, 0, 0, 0)``

**main.last-prefs-page**

Used internally to select the most recently used prefs page.


Internal Name:  ``main.last-prefs-page``


Data Specification:  ``[tuple length 2 of: <type int>, <type int>]``


Default Value:  ``(-1, -1)``

**main.last-properties-pages**

Used internally to select the most recently used properties dialog pages.


Internal Name:  ``main.last-properties-pages``


Data Specification:  ``[dict; keys: <type str>, values: <type int>]``


Default Value:  ``{}``

**main.plugin-overrides**

Defines which plugins are enabled or disabled.


Internal Name:  ``main.plugin-overrides``


Data Specification:  ``[dict; keys: <type str>, values: <boolean: 0 or 1>]``


Default Value:  ``{}``

**main.prefs-version**

Used internally to identify prefs file version


Internal Name:  ``main.prefs-version``


Data Specification:  ``[None or <type int>]``


Default Value:  ``None``

**main.sassist-allow-pep287-errors**

Whether to render docstrings even if they contain parse errors at or above the threshold set by Source Assistant PEP 287 Error Threshold.  When disabled, failing docstrings are shown as plain text instead.  When enabled, a best effort is made to display the formatted docstring while suppressing errors.


Internal Name:  ``main.sassist-allow-pep287-errors``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**main.sassist-always-show-docstrings**

Whether to always show docstrings in the Source Assistant.  When disabled, only the docstring for the last displayed symbol is shown.


Internal Name:  ``main.sassist-always-show-docstrings``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**main.sassist-pep287-error-level**

The error level at or above which the source assistant will display parse errors in PEP287 docstrings (if showing PEP287 errors) or will fall back to showing plain text (if not showing PEP287 errors).  For errors below this threshold, a best attempt is made to achieve a reasonable rendering.


Internal Name:  ``main.sassist-pep287-error-level``


Data Specification:  ``[0, 1, 2, 3, 4]``


Default Value:  ``2``

**main.sassist-tries-rewrap**

Whether to rewrap plain text docstrings for display in the Source Assistant.  This may destroy formatting of some docstrings.


Internal Name:  ``main.sassist-tries-rewrap``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**main.sassist-show-validity**

Whether show docstring type and validity in the Source Assistant.


Internal Name:  ``main.sassist-show-validity``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**main.sassist-tries-pep287**

Whether to try parsing docstrings as ReST format for display in the Source Assistant.  This may destroy formatting of some docstrings.


Internal Name:  ``main.sassist-tries-pep287``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**main.update-history**

History of updates used diagnostically


Internal Name:  ``main.update-history``


Data Specification:  ``<type list>``


Default Value:  ``[]``


User Interface Preferences
..........................

**gui.alphabetize-tabs**

Whether to keep tabs in alphabetical order.


Internal Name:  ``gui.alphabetize-tabs``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**gui.console-lookup-command-key**

Look up key bindings that include Command+ when a console tool has keyboard focus.  Applies only on macOS.


Internal Name:  ``gui.console-lookup-command-key``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**guimgr.fallback-to-macos-keymap**

Use key bindings from macOS keymap for keys not defined in currently selected keymap


Internal Name:  ``guimgr.fallback-to-macos-keymap``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**gui.feedback-email**

Email address to use by default in the Feedback and Bug Report dialogs


Internal Name:  ``gui.feedback-email``


Data Specification:  ``<type str>``


Default Value:  ``""``

**gui.last-feedback-shown**

Used internally to avoid showing the feedback dialog on exit over and over again.


Internal Name:  ``gui.last-feedback-shown``


Data Specification:  ``<type float>``


Default Value:  ``0.0``

**guimgr.last-wingtips-size**

Internal preference used to remember the last size of the Wing Tips window


Internal Name:  ``guimgr.last-wingtips-size``


Data Specification:  ``[any value]``


Default Value:  ``(500, 450)``

**gui.more-controls-for-search-in-files**

Controls whether "Search in Files" dialog has an extra row of visible options as buttons.


Internal Name:  ``gui.more-controls-for-search-in-files``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**gui.new-tabs-on-left**

Whether to add new tabs on the left side instead on the right.


Internal Name:  ``gui.new-tabs-on-left``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**gui.prefered-symbol-order**

Control preferred order in source index displays such as the editor browse menus.  Either sort in the order found in the file or alphabetical order.


Internal Name:  ``gui.prefered-symbol-order``


Data Specification:  ``[file-order, alpha-order]``


Default Value:  ``alpha-order``

**gui.qt-osx-key-for-alt**

Selects the key to use as the Alt- modifier in key bindings.  Note that the Option key is also used to enter characters, such as ® on US keyboards or ] on German keyboards.  When the Option key is used for the Alt key, Alt-key bindings take precedence and thus may block entering of characters with the Option key.  If both functions are needed, use the left Option key for the Alt-key and enter characters with the right Option key.  If the Command keys are used for the Alt key, any Alt-key bindings will override Command-key bindings for the same key.


Internal Name:  ``gui.qt-osx-key-for-alt``


Data Specification:  ``[both-option-keys, left-option-key, command-keys, none]``


Default Value:  ``left-option-key``

**guimgr.quit-on-last-window-close-osx**

Quit application when last document window closes


Internal Name:  ``guimgr.quit-on-last-window-close-osx``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**gui.reported-exceptions**

Used internally to remember which unexpected exceptions have already been reported so we only show error reporting dialog once for each.


Internal Name:  ``gui.reported-exceptions``


Data Specification:  ``[dict; keys: <type str>, values: [dict; keys: <type str>, values: <boolean: 0 or 1>]]``


Default Value:  ``{}``

**gui.set-win32-foreground-lock-timeout**

Controls whether or not to set the foreground lock timeout on Windows, where normally Wing will be unable to bring source windows to front whenever the debug process has windows in the foreground.  When this preference is true, the system-wide value that prevents background applications from raising windows is cleared whenever Wing is running.  This means that other apps will also be able to raise windows without these restrictions while Wing is running. Set the preference to false to avoid this, but be prepared for windows to fail to raise in some instances.  Note:  If Wing is terminated abnormally or from the task manager, the changed value will persist until the user logs out.


Internal Name:  ``gui.set-win32-foreground-lock-timeout``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**gui.show-report-error-dialog**

Whether the error bug reporting dialog (also available from the Help menu) is shown automatically when an unexpected exception is encountered inside Wing.


Internal Name:  ``gui.show-report-error-dialog``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**gui.show-feedback-dialog**

Whether feedback dialog is shown to user on quit.


Internal Name:  ``gui.show-feedback-dialog``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**gui.startup-show-wingtips**

Controls whether or not the Wing Tips tool is shown automatically at startup of the IDE.


Internal Name:  ``gui.startup-show-wingtips``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**gui.work-area-rect**

Rectangle to use for the IDE work area on screen.  All windows open within this area.  Format is (x, y, width, height), or use None for full screen.


Internal Name:  ``gui.work-area-rect``


Data Specification:  ``[None or [tuple length 4 of: <type int>, <type int>, <type int>, <type int>]]``


Default Value:  ``None``


Editor Preferences
..................

**consoles.auto-clear**

Automatically clear the OS Commands consoles each time the command is re-executed


Internal Name:  ``consoles.auto-clear``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**edit.snippets-in-autocompleter**

Whether or not to include code snippets in the auto-completer.


Internal Name:  ``edit.snippets-in-autocompleter``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**edit.fold-mime-types**

Selects the mime types for which folding should be allowed when folding in general is enabled.


Internal Name:  ``edit.fold-mime-types``


Data Specification:  ``[list of: <type str>]``


Default Value:  ``['text/x-python', 'text/x-python-interface', 'text/x-c-source', 'text/x-cpp-source', 'text/x-java-source', 'text/x-javascript', 'text/html', 'text/x-mako', 'text/x-django', 'text/xml', 'text/x-zope-pt', 'text/x-eiffel', 'text/x-lisp', 'text/x-ruby', 'text/x-cython', 'text/x-yaml', 'application/json']``

**consoles.wrap-long-lines**

Wrap long output lines in OS Commands tool to fit within available display area.


Internal Name:  ``consoles.wrap-long-lines``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**consoles.python-prompt-after-execution**

Drop into Python shell after executing any Python file in the OS Commands tool


Internal Name:  ``consoles.python-prompt-after-execution``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**edit.shared-bookmark-categories**

Bookmark categories that are shared with all projects.


Internal Name:  ``edit.shared-bookmark-categories``


Data Specification:  ``[dict; keys: <type str>, values: <type str>]``


Default Value:  ``{}``

**edit.show-import-maybe-used-dialog**

Whether to show the import may be used dialog when attempting to remove an import that is used in the code.  When the dialog is not shown, a message is shown in the status area instead.


Internal Name:  ``edit.show-import-maybe-used-dialog``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**edit.sassist-font-zoom**

The amount by which to zoom font sizes in or out in the Source Assistant.


Internal Name:  ``edit.sassist-font-zoom``


Data Specification:  ``<type float>``


Default Value:  ``1.0``

**edit.symbol-find-alpha-sort**

Controls whether to sort Find Symbol dialog alphabetically or in natural file order


Internal Name:  ``edit.symbol-find-alpha-sort``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**edit.symbol-find-include-args**

Controls whether to include argument specs in the searchable text used in the Find Symbol dialog


Internal Name:  ``edit.symbol-find-include-args``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``


Diff/Merge Preferences
......................

**diff.show-added-removed**

Controls whether to show added and deleted files when comparing two directories.


Internal Name:  ``diff.show-added-removed``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**diff.show-unchanged**

Controls whether to show unchanged files when comparing two directories.


Internal Name:  ``diff.show-unchanged``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``


Project Manager Preferences
...........................

**proj.follow-editor**

Controls whether or not the IDE will follow the current editor by expanding the project tree to show the file open in the editor.


Internal Name:  ``proj.follow-editor``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**proj.follow-selection**

Controls whether or not the IDE will follow the current project manager selection by opening the corresponding source file in a non-sticky (auto-closing) editor.  In either case, the project manager will always open a file in sticky mode when an item is double clicked or the Goto Source context menu item is used.


Internal Name:  ``proj.follow-selection``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**proj.last-anaconda**

Used internally to store the last successfully used Anaconda installationfor New Project.


Internal Name:  ``proj.last-anaconda``


Data Specification:  ``<type str>``


Default Value:  ``""``

**proj.last-new-project-dir-type**

Used internally to store the last used new project directory type.


Internal Name:  ``proj.last-new-project-dir-type``


Data Specification:  ``<type str>``


Default Value:  ``existing``

**proj.last-new-project-env-type**

Used internally to store the last used new project environment type.


Internal Name:  ``proj.last-new-project-env-type``


Data Specification:  ``<type str>``


Default Value:  ``existing``

**proj.last-new-project-python-type**

Used internally to store the last used new project Python type.


Internal Name:  ``proj.last-new-project-python-type``


Data Specification:  ``<type str>``


Default Value:  ``existing``

**proj.last-new-project-type**

Used internally to store the last used new project type.


Internal Name:  ``proj.last-new-project-type``


Data Specification:  ``<type str>``


Default Value:  ``generic``

**proj.open-from-project-full-paths**

Match fragments to full path of the file name, rather than just the file name.  Full path matching still occurs when the path separation character is included in the search pattern.


Internal Name:  ``proj.open-from-project-full-paths``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**proj.auto-correct-pyexec**

Whether to automatically correct Python Executable in Project Properties when it does not match the virtualenv created by Poetry, pipenv, or uv


Internal Name:  ``proj.auto-correct-pyexec``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``


Debugger Preferences
....................

**debug.animate-data-tips**

Whether to animate debug data tips shown when Shift-Space is pressed.


Internal Name:  ``debug.animate-data-tips``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**debug.auto-clear-debug-io**

Enable to automatically clear the Debug I/O tool each time a new debug session is started


Internal Name:  ``debug.auto-clear-debug-io``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**debug.auto-show-debug-io**

Controls whether and when to automatically show the Debug I/O tool when it receives output.


Internal Name:  ``debug.auto-show-debug-io``


Data Specification:  ``[False, first, True]``


Default Value:  ``first``

**debug.array-search-all-columns**

Controls whether searching in the debug array view searchs all columns or just the visible columns


Internal Name:  ``debug.array-search-all-columns``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**debug.array-search-case**

Selects whether search in the array view is case sensitive


Internal Name:  ``debug.array-search-case``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**debug.array-search-type**

Selects the type of search to perform in the array view of debug data: text, wildcard, or regex


Internal Name:  ``debug.array-search-type``


Data Specification:  ``[text, wildcard, regex]``


Default Value:  ``text``

**debug.debug-data-vertical**

Controls whether the debugger shows value details in data views verticallyor horizontally.


Internal Name:  ``debug.debug-data-vertical``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**debug.debug-io-focus-for-input**

Enable to raise the Debug I/O tool and place focus into the I/O buffer whenever the debug process is waiting for keyboard input.


Internal Name:  ``debug.debug-io-focus-for-input``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**debug.debug-io-history**

Enable to maintain a history of Debug I/O, up to the number configured in the Files > Max Recent Items preference.


Internal Name:  ``debug.debug-io-history``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**debug.debug-io-history**

Enable to include child processes in the process selector popup.


Internal Name:  ``debug.debug-io-history``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``True``

**debug.default-python-exec**

Sets the default Python Executable to use for debugging and source code analysis.  This can be overridden on a project by project basis in Project Properties.


Internal Name:  ``debug.default-python-exec``


Data Specification:  ``[None or <type str>]``


Default Value:  ``None``

**main.launch-shared-file**

Selects the file to use for storing and retrieving shared launch configurations. By default the file 'launch' in the user settings directory is used.


Internal Name:  ``main.launch-shared-file``


Data Specification:  ``[one of: <type NoneType>, <type str>]``


Default Value:  ``None``

**debug.shell-pasted-line-threshold**

The number of lines after which the Python Shell will just print a summary rather than the actual lines of code pasted, dragged, or other transferred to the shell.


Internal Name:  ``debug.shell-pasted-line-threshold``


Data Specification:  ``<type int>``


Default Value:  ``30``

**debug.show-debug-data-details**

Controls whether the debugger shows value details in data views.


Internal Name:  ``debug.show-debug-data-details``


Data Specification:  ``<type float>``


Default Value:  ``0.0``

**debug.show-exceptions-tip**

Used internally to show information about exception handling to new users.  Once turned off, it is never turned on again


Internal Name:  ``debug.show-exceptions-tip``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**debug.stop-timeout**

Number of seconds to wait before the debugger will stop in its own code after a pause request is received and no other Python code is reached.


Internal Name:  ``debug.stop-timeout``


Data Specification:  ``<type int>, <type float>``


Default Value:  ``3.0``

**debug.use-members-attrib**

Set this to true to have the debug server use the __members__ attribute to try to interpret otherwise opaque data values.  This is a preference because some extension modules contain bugs that result in crashing if this attribute is accessed.  Note that __members__ has been deprecated since Python version 2.2.


Internal Name:  ``debug.use-members-attrib``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**debug.warn-stale-shell**

Enable to display a dialog when the Python Shell state no longer matches the configured Python Executable and/or Python Path.


Internal Name:  ``debug.warn-stale-shell``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**debug.wrap-debug-io**

Enables line wrapping in the integrated Debug I/O tool.


Internal Name:  ``debug.wrap-debug-io``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**debug.wrap-debug-probe**

Enables line wrapping in the Debug Console.


Internal Name:  ``debug.wrap-debug-probe``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``

**debug.wrap-python-shell**

Enables line wrapping in the Python Shell.


Internal Name:  ``debug.wrap-python-shell``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``0``


Source Analysis Preferences
...........................

**pysource.analyze-in-background**

Whether Wing should try to analyze python source in the background.


Internal Name:  ``pysource.analyze-in-background``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``1``

**pysource.use-helper-process**

Whether to use a helper process to analyze disk files. (Currently experimental)


Internal Name:  ``pysource.use-helper-process``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``

**pysource.use-sqllite-dotfile-locking**

Use slower, dotfile locking for sqllite databases to work around buggy remote file servers.  Only needed if the user cache directory is on a remote file system or can be accessed via a remote file system.  It is recommended that the user cache directory be on the local file system for performance reasons.


Internal Name:  ``pysource.use-sqllite-dotfile-locking``


Data Specification:  ``<boolean: 0 or 1>``


Default Value:  ``False``
