'render_callback' => [ '\\Code_Snippets\\Settings\\Version_Switch', 'render_version_switch_field' ], ], 'refresh_versions' => [ 'name' => __( 'Refresh Versions', 'code-snippets' ), 'type' => 'callback', 'render_callback' => [ '\\Code_Snippets\\Settings\\Version_Switch', 'render_refresh_versions_field' ], ], 'version_warning' => [ 'name' => '', 'type' => 'callback', 'render_callback' => [ '\\Code_Snippets\\Settings\\Version_Switch', 'render_version_switch_warning' ], ], ]; $this->fields['general'] = [ 'activate_by_default' => [ 'name' => __( 'Activate by Default', 'code-snippets' ), 'type' => 'checkbox', 'label' => __( "Make the 'Save and Activate' button the default action when saving a snippet.", 'code-snippets' ), ], 'enable_tags' => [ 'name' => __( 'Enable Snippet Tags', 'code-snippets' ), 'type' => 'checkbox', 'label' => __( 'Show snippet tags on admin pages.', 'code-snippets' ), ], 'enable_description' => [ 'name' => __( 'Enable Snippet Descriptions', 'code-snippets' ), 'type' => 'checkbox', 'label' => __( 'Show snippet descriptions on admin pages.', 'code-snippets' ), ], 'visual_editor_rows' => [ 'name' => __( 'Description Editor Height', 'code-snippets' ), 'type' => 'number', 'label' => _x( 'rows', 'unit', 'code-snippets' ), 'min' => 0, ], 'list_order' => [ 'name' => __( 'Snippets List Order', 'code-snippets' ), 'type' => 'select', 'desc' => __( 'Default way to order snippets on the All Snippets admin menu.', 'code-snippets' ), 'options' => [ 'priority-asc' => __( 'Priority', 'code-snippets' ), 'name-asc' => __( 'Name (A-Z)', 'code-snippets' ), 'name-desc' => __( 'Name (Z-A)', 'code-snippets' ), 'modified-desc' => __( 'Modified (latest first)', 'code-snippets' ), 'modified-asc' => __( 'Modified (oldest first)', 'code-snippets' ), ], ], 'disable_prism' => [ 'name' => __( 'Disable Syntax Highlighter', 'code-snippets' ), 'type' => 'checkbox', 'label' => __( 'Disable syntax highlighting when displaying snippet code on the front-end.', 'code-snippets' ), ], ]; if ( ! code_snippets()->licensing->is_licensed() ) { $this->fields['general']['hide_upgrade_menu'] = [ 'name' => __( 'Hide Upgrade Notices', 'code-snippets' ), 'type' => 'checkbox', 'label' => __( 'Hide notices inviting you to upgrade to Code Snippets Pro.', 'code-snippets' ), ]; } if ( ! is_multisite() || is_main_site() ) { $this->fields['general']['complete_uninstall'] = [ 'name' => __( 'Complete Uninstall', 'code-snippets' ), 'type' => 'checkbox', 'label' => __( 'When the plugin is deleted from the Plugins menu, also delete all snippets and plugin settings.', 'code-snippets' ), ]; } $this->fields['general']['enable_admin_bar'] = [ 'name' => __( 'Enable Admin Bar Menu', 'code-snippets' ), 'type' => 'checkbox', 'label' => __( 'Show a Snippets menu in the admin bar for quick access to snippets.', 'code-snippets' ), ]; $this->fields['general']['admin_bar_snippet_limit'] = [ 'name' => __( 'Admin Bar Snippets Per Page', 'code-snippets' ), 'type' => 'number', 'desc' => __( 'Number of snippets to show in the admin bar Active/Inactive menus before paginating.', 'code-snippets' ), 'label' => __( 'snippets', 'code-snippets' ), 'min' => 1, 'max' => 100, 'show_if' => [ 'section' => 'general', 'field' => 'enable_admin_bar', 'value' => true, ], ]; $this->fields['editor'] = [ 'indent_with_tabs' => [ 'name' => __( 'Indent With Tabs', 'code-snippets' ), 'type' => 'checkbox', 'label' => __( 'Use hard tabs instead of spaces for indentation.', 'code-snippets' ), 'codemirror' => 'indentWithTabs', ], 'tab_size' => [ 'name' => __( 'Tab Size', 'code-snippets' ), 'type' => 'number', 'desc' => __( 'The width of a tab character.', 'code-snippets' ), 'label' => _x( 'spaces', 'unit', 'code-snippets' ), 'codemirror' => 'tabSize', 'min' => 0, ], 'indent_unit' => [ 'name' => __( 'Indent Unit', 'code-snippets' ), 'type' => 'number', 'desc' => __( 'The number of spaces to indent a block.', 'code-snippets' ), 'label' => _x( 'spaces', 'unit', 'code-snippets' ), 'codemirror' => 'indentUnit', 'min' => 0, ], 'font_size' => [ 'name' => __( 'Font Size', 'code-snippets' ), 'type' => 'number', 'label' => _x( 'px', 'unit', 'code-snippets' ), 'codemirror' => 'fontSize', 'min' => 8, 'max' => 28, ], 'wrap_lines' => [ 'name' => __( 'Wrap Lines', 'code-snippets' ), 'type' => 'checkbox', 'label' => __( 'Soft-wrap long lines of code instead of horizontally scrolling.', 'code-snippets' ), 'codemirror' => 'lineWrapping', ], 'code_folding' => [ 'name' => __( 'Code Folding', 'code-snippets' ), 'type' => 'checkbox', 'label' => __( 'Allow folding functions or other blocks into a single line.', 'code-snippets' ), 'codemirror' => 'foldGutter', ], 'line_numbers' => [ 'name' => __( 'Line Numbers', 'code-snippets' ), 'type' => 'checkbox', 'label' => __( 'Show line numbers to the left of the editor.', 'code-snippets' ), 'codemirror' => 'lineNumbers', ], 'auto_close_brackets' => [ 'name' => __( 'Auto Close Brackets', 'code-snippets' ), 'type' => 'checkbox', 'label' => __( 'Auto-close brackets and quotes when typed.', 'code-snippets' ), 'codemirror' => 'autoCloseBrackets', ], 'highlight_selection_matches' => [ 'name' => __( 'Highlight Selection Matches', 'code-snippets' ), 'label' => __( 'Highlight all instances of a currently selected word.', 'code-snippets' ), 'type' => 'checkbox', 'codemirror' => 'highlightSelectionMatches', ], 'highlight_active_line' => [ 'name' => __( 'Highlight Active Line', 'code-snippets' ), 'label' => __( 'Highlight the line that is currently being edited.', 'code-snippets' ), 'type' => 'checkbox', 'codemirror' => 'styleActiveLine', ], 'keymap' => [ 'name' => __( 'Keymap', 'code-snippets' ), 'type' => 'select', 'desc' => __( 'The set of keyboard shortcuts to use in the code editor.', 'code-snippets' ), 'options' => [ 'default' => __( 'Default', 'code-snippets' ), 'vim' => __( 'Vim', 'code-snippets' ), 'emacs' => __( 'Emacs', 'code-snippets' ), 'sublime' => __( 'Sublime Text', 'code-snippets' ), ], 'codemirror' => 'keyMap', ], 'theme' => [ 'name' => __( 'Theme', 'code-snippets' ), 'type' => 'select', 'options' => Editor_Preview::get_editor_theme_list(), 'codemirror' => 'theme', ], ]; $this->fields = apply_filters( 'code_snippets_settings_fields', $this->fields ); } }