Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hanging when adding several packages to the ignored_packages setting #2155

Open
evandrocoan opened this issue Jan 8, 2018 · 5 comments
Open

Comments

@evandrocoan
Copy link

evandrocoan commented Jan 8, 2018

Summary

Adding several diverse not lightweight third part packages to the ignored_packages settings, causes Sublime Text to hang for long time.

Expected behavior

Not hang the Sublime Text User Interface (UI) when adding a lot of packages to ignored_packages setting.

Actual behavior

Hanging the Sublime Text User Interface (UI) when adding a lot of packages to ignored_packages setting.

Steps to reproduce

  1. Install a bunch of packages on Sublime Text, like 200 packages.
  2. Make sure everything is installed properly and any of them are on the ignored_packages setting.
  3. After restarting Sublime Text and fully loading all the packages, add them at once to the ignored_packages setting.

Environment

  • Operating system and version:
    • Windows 10 build 15063 x64
    • Mac OS ...
    • Linux ...
  • Monitor:
    • Resolution 1920x1080
    • dpi_scale used in ST 1.0
  • Sublime Text:
    • Build 3156
    • 32 bit

Related:

  1. [Bug] More than 320 installed packages debugging #1629 [Bug] More than 320 installed packages debugging
  2. Crash on bulk Sublimehq packages move #1778 Crash on bulk Sublimehq packages move
  3. Hang Sublime Text on startup #1957 Hang Sublime Text on startup
  4. Randomly reverting back the ignored_packages setting on batch operations #2132 Randomly reverting back the ignored_packages setting on batch operations
@keith-hall
Copy link
Collaborator

keith-hall commented Jan 8, 2018

I've experienced a delay of up to 10 seconds when saving a syntax definition before, while ST recreates the syntax graph (and this is with about 20 packages max) - it could be related if your packages you are ignoring contain syntaxes. What are the last few lines of the console output while the hang is happening?

@evandrocoan
Copy link
Author

evandrocoan commented Jan 8, 2018

I also seemed to have a hang like yours (10 seconds) disabling about 140 packages. This is the console:

reloading settings Packages/User/Preferences.sublime-settings
ignored packages updated to: ["Anaconda", "ApplySyntax", "BracketHighlighter", "BuildView", "C++
Completions", "C++ Qt Completions", "C++ Snippets", "CodeIntel", "ColorHelper",
"DictionaryAutoComplete", "FileManager", "Find++", "Gist", "Git", "GitGutter",
"GotoLastEditEnhanced", "Javatar", "JediPythonAutoCompletion", "LocalHistory", "MatlabCompletions",
"MatlabFilenameAutoComplete", "MySQLSnippets", "ProjectSpecificSyntax", "ScopeAlways",
"SublimeLinter-javac", "SyncedSideBar", "TypeScript", "Vintage", "WordHighlight",
"0_settings_loader", "A File Icon", "AceJump", "ActiveViewJumpBack", "AddFolderToProject",
"AdvancedCSV", "Alignment", "AlignTab", "AllAutocomplete", "AltUp", "Amxmodx", "AmxxChannel",
"AmxxPawn", "Anaconda", "ANSIescape", "ApplySyntax", "AutoFileName", "AutomaticPackageReloader",
"AutoRefresh", "AutoWrap", "BBCode", "BetterCoffeeScript", "BetterFindBuffer", "BracketHighlighter",
"BufferScroll", "BuildView", "C++ Completions", "C++ Qt Completions", "C++ Snippets",
"CaseConversion", "ChainOfCommand", "ChangeQuotes", "ChannelRepositoryTools", "ClearCursorsCarets",
"ClickableURLs", "ClipboardScopeCopy", "CodeIntel", "Color Highlighter", "ColorHelper",
"ColorSchemeEditor", "ColorSchemeUnit", "ColumnSelect", "CompareSideBySide", "ConvertToUTF8",
"CopyFilepathWithLineNumbers", "CopyWithLineNumbersReloaded", "DefaultSyntax", "DeleteCurrentFile",
"DictionaryAutoComplete", "DistractionFreeWindow", "DocBlockr", "Dotfiles", "DuplicateSelections",
"EditPreferences", "Emmet", "ExpandRegion", "ExportHtml", "ExtendedTabSwitcher", "ExtractText",
"FileDiffs", "FileHistory", "FileManager", "FileRename", "Find++", "FindKeyConflicts",
"FixCommandPalette", "FixProjectSwitchRestartBug", "FixSelectionAfterIndent",
"ForceRewriteSublimeSettings", "FuzzyFileNav", "FuzzyFilePath", "GenericConfig", "Gist", "Git",
"GitGutter", "GitHubMarkdownSnippets", "Glue", "GoogleSpellCheck", "GotoLastEditEnhanced",
"HighlightBuildErrors", "HighlightWords", "HorizontalScroll", "HungryBackspace", "Incrementor",
"IncrementSelection", "IndentAndBraces", "IndentSize", "InsertNums", "InvertSelection", "Javatar",
"JediPythonAutoCompletion", "JumpAlongIndent", "KeepPastedTextSelected", "Language - English and
Portuguese", "LaTeXSmartQuotes", "LaTeXTools", "LaTeXWordCount", "LESS", "LineEndingsUnify",
"LocalHistory", "MarkdownPreview", "MarkdownToBBCode", "MatlabCompletions",
"MatlabFilenameAutoComplete", "Maven", "MaxPane", "MoveText", "MultiEditUtils", "MySQLSnippets",
"Notepad++ Color Scheme", "NumberKing", "Octave", "OpenAutoCompletion", "Origami", "OverrideAudit",
"OverrideCommitCompletion", "OverrideEditSettingsDefaultContents", "OverrideUnpackedPackages",
"PackageDev", "PackageResourceViewer", "PackagesManager", "PathTranslator", "PostScript",
"PowerCursors", "PrettyJSON", "ProjectSpecificSyntax", "PyV8", "QuickSettings", "RandomEverything",
"REG", "ReIndent", "REPL", "RichPlainText", "SassSyntax", "ScopeAlways", "ScopeHunter", "SelectAll",
"SelectAllSpellingErrors", "SelectUntil", "SemanticLineWrap", "SideBarEnhancements",
"SideBySideSettings", "SQLExec", "SQLKeywordUppercase", "SQLTools", "StickySearch", "StudioChannel",
"SublimeLinter", "SublimeLinter-javac", "SublimeTutorial", "Swift", "SyncedSideBar",
"SyncViewScroll", "SyntaxManager", "TabsExtra", "TerminalShortcuts", "TextPastry", "ToggleWords",
"TOML", "Trimmer", "TypeScript", "UncrustifySublimePlugin", "UnitTesting", "VBScript",
"ViewSettingsFreely", "Whitespace", "WordCount", "WordHighlight", "WrapPlus", "X86Assembly", "zzz A
File Icon zzz"]
unloading plugin 0_settings_loader.install_package_control_extended
reloading settings Packages/0_settings_loader/Preferences (Windows).sublime-settings
font face "" could not be found, defaulting to "Consolas"
reloading settings Packages/0_settings_loader/Preferences.sublime-settings
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\Color Highlighter\main.py", line 341, in _on_preferences_change
    ColorHighlighterPlugin.restart()
  File "F:\SublimeText\Data\Packages\Color Highlighter\main.py", line 347, in restart
    ColorHighlighterPlugin.init()
  File "F:\SublimeText\Data\Packages\Color Highlighter\main.py", line 319, in init
    ColorHighlighterPlugin._fake_color_scheme = ColorHighlighterPlugin.components.provide_fake_color_scheme()
  File "F:\SublimeText\Data\Packages\Color Highlighter\main.py", line 197, in provide_fake_color_scheme
    return self.provide_fake_color_scheme_data()[0]
  File "F:\SublimeText\Data\Packages\Color Highlighter\main.py", line 188, in provide_fake_color_scheme_data
    self._fake_color_scheme_data = parse_color_scheme(self.provide_color_scheme(), self._settings.debug)
  File "F:\SublimeText\Data\Packages\Color Highlighter\color_scheme.py", line 40, in parse_color_scheme
    color_scheme_content = load_resource.load_resource(color_scheme)
  File "F:\SublimeText\Data\Packages\Color Highlighter\load_resource.py", line 30, in load_resource
    return sublime.load_resource(file_path)
  File "F:\SublimeText\sublime.py", line 192, in load_resource
    raise IOError("resource not found")
OSError: resource not found
unloading plugin 0_settings_loader.synced_side_bar_watcher
unloading plugin A File Icon.A File Icon
reloading settings Packages/A File Icon/.sublime/A File Icon.sublime-settings
unloading plugin AceJump.ace_jump
reloading settings Packages/AceJump/AceJump.sublime-settings
unloading plugin ActiveViewJumpBack.active_view_jump_back
unloading plugin AddFolderToProject.AddFolderToProject
reloading settings Packages/AdvancedCSV/AdvancedCSV.sublime-settings
unloading plugin AdvancedCSV.csvplugin
unloading plugin Alignment.Alignment
reloading settings Packages/Alignment/CSS.sublime-settings
reloading settings Packages/Alignment/JSON.sublime-settings
reloading settings Packages/Alignment/Preferences.sublime-settings
unloading plugin AlignTab.aligner
unloading plugin AlignTab.aligntab
unloading plugin AlignTab.hist
unloading plugin AlignTab.parser
unloading plugin AlignTab.table
unloading plugin AlignTab.wclen
reloading settings Packages/AllAutocomplete/All Autocomplete.sublime-settings
unloading plugin AllAutocomplete.all_views_completions
unloading plugin AltUp.run_multiple_commands
reloading settings Packages/Amxmodx/AMXX-Console.sublime-settings
reloading settings Packages/Amxmodx/amxx.sublime-settings
unloading plugin Amxmodx.AMXXEditor
unloading plugin AmxxChannel.commands
unloading plugin AmxxChannel.fix_main_menus
unloading plugin AmxxChannel.settings
reloading settings Packages/AmxxPawn/AmxxPawn.sublime-settings
unloading plugin ANSIescape.ansi
reloading settings Packages/ANSIescape/ansi.sublime-settings
unloading plugin AutoFileName.autofilename
reloading settings Packages/AutoFileName/autofilename.sublime-settings
unloading plugin AutoFileName.getimageinfo
unloading plugin AutomaticPackageReloader.package_reloader
reloading settings Packages/AutomaticPackageReloader/package_reloader.sublime-settings
unloading plugin AutoRefresh.AutoRefresh
reloading settings Packages/AutoRefresh/AutoRefresh.sublime-settings
unloading plugin AutoWrap.autowrap
reloading settings Packages/AutoWrap/Preferences.sublime-settings
reloading settings Packages/BBCode/BBCode.sublime-settings
unloading plugin BetterCoffeeScript.CoffeeScript
reloading settings Packages/BetterCoffeeScript/CoffeeScript.sublime-settings
reloading settings Packages/BetterFindBuffer/BetterFindBuffer.sublime-settings
reloading settings Packages/BetterFindBuffer/Find Results.sublime-settings
unloading plugin BetterFindBuffer.find_results
unloading plugin BufferScroll.BufferScroll
reloading settings Packages/BufferScroll/BufferScroll.sublime-settings
unloading plugin CaseConversion.case_conversion
unloading plugin CaseConversion.case_parse
unloading plugin CaseConversion.ToggleTitleCase
unloading plugin ChainOfCommand.chain
unloading plugin ChangeQuotes.change_quotes
reloading settings Packages/ChangeQuotes/ChangeQuotes.sublime-settings
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\ChangeQuotes\change_quotes.py", line 68, in load_config
    build_config(settings)
  File "F:\SublimeText\Data\Packages\ChangeQuotes\change_quotes.py", line 62, in build_config
    config["lists"] = reorder_list_settings(settings.get("lists"))
  File "F:\SublimeText\Data\Packages\ChangeQuotes\change_quotes.py", line 31, in reorder_list_settings
    for scope, conf in list_settings.items():
AttributeError: 'NoneType' object has no attribute 'items'
unloading plugin ChannelRepositoryTools.ordereddict
unloading plugin ChannelRepositoryTools.tests
unloading plugin ChannelRepositoryTools.upgrade
unloading plugin ClearCursorsCarets.clear_cursors_carets
unloading plugin ClickableURLs.clickable_urls
unloading plugin ClipboardScopeCopy.clipboard_scope_copy
unloading plugin Color Highlighter.color_converter
unloading plugin Color Highlighter.color_highlighter
unloading plugin Color Highlighter.color_hover_listener
unloading plugin Color Highlighter.color_scheme
unloading plugin Color Highlighter.color_scheme_color_highlighter
unloading plugin Color Highlighter.color_searcher
unloading plugin Color Highlighter.color_selection_listener
reloading settings Packages/Color Highlighter/ColorHighlighter.sublime-settings
unloading plugin Color Highlighter.colors
unloading plugin Color Highlighter.content_listener
unloading plugin Color Highlighter.convert_color_command
unloading plugin Color Highlighter.css_colors
unloading plugin Color Highlighter.dummy_event_listener
unloading plugin Color Highlighter.gutter_icons_color_highlighter
unloading plugin Color Highlighter.load_resource
unloading plugin Color Highlighter.main
unloading plugin Color Highlighter.path
unloading plugin Color Highlighter.phantoms_color_highlighter
unloading plugin Color Highlighter.pick_color_command
unloading plugin Color Highlighter.regex_compiler
unloading plugin Color Highlighter.regions
unloading plugin Color Highlighter.set_setting_command
unloading plugin Color Highlighter.settings
unloading plugin Color Highlighter.st_helper
unloading plugin Color Highlighter.topsort
unloading plugin ColorSchemeEditor.ColorSchemeEditor-ST2
unloading plugin ColorSchemeUnit.plugin
reloading settings Packages/ColorSchemeUnit/Preferences.sublime-settings
unloading plugin ColumnSelect.column_select
unloading plugin CompareSideBySide.sbs_compare
unloading plugin ConvertToUTF8.ConvertToUTF8
reloading settings Packages/ConvertToUTF8/ConvertToUTF8.sublime-settings
unloading plugin CopyFilepathWithLineNumbers.CopyFilepathWithLineNumbers
unloading plugin CopyWithLineNumbersReloaded.copy_with_line_numbers
unloading plugin DefaultSyntax.default_syntax
reloading settings Packages/DefaultSyntax/Preferences.sublime-settings
unloading plugin DeleteCurrentFile.DeleteCurrentFile
reloading settings Packages/DeleteCurrentFile/DeleteCurrentFile.sublime-settings
unloading plugin DistractionFreeWindow.distraction_free_window
unloading plugin DocBlockr.jsdocs
reloading settings Packages/DocBlockr/Preferences.sublime-settings
unloading plugin DocBlockr.test_runner
reloading settings Packages/Dotfiles/Shell-Unix-Generic.sublime-settings
unloading plugin DuplicateSelections.duplicate_selections
unloading plugin EditPreferences.__init__
unloading plugin EditPreferences.commands_base
reloading settings Packages/EditPreferences/edit-preferences.sublime-settings
unloading plugin EditPreferences.edit_package_files
unloading plugin EditPreferences.extract_snippets
unloading plugin EditPreferences.helper_commands
unloading plugin EditPreferences.helpers
unloading plugin EditPreferences.insert_binding_repr
unloading plugin EditPreferences.jsonix
unloading plugin EditPreferences.list_commands
unloading plugin EditPreferences.list_menu_bindings
unloading plugin EditPreferences.list_settings
unloading plugin EditPreferences.list_shortcut_keys
unloading plugin EditPreferences.list_theme_selectors
unloading plugin EditPreferences.package_resources
unloading plugin EditPreferences.quick_panel_cols
unloading plugin EditPreferences.scheduler
unloading plugin Emmet.emmet-plugin
reloading settings Packages/Emmet/Emmet.sublime-settings
reloading settings Packages/Emmet/Preferences.sublime-settings
unloading plugin ExpandRegion.__init__
unloading plugin ExpandRegion.expand_region_handler
unloading plugin ExpandRegion.expand_to_indent
unloading plugin ExpandRegion.expand_to_line
unloading plugin ExpandRegion.expand_to_quotes
unloading plugin ExpandRegion.expand_to_regex_set
unloading plugin ExpandRegion.expand_to_semantic_unit
unloading plugin ExpandRegion.expand_to_subword
unloading plugin ExpandRegion.expand_to_symbols
unloading plugin ExpandRegion.expand_to_word
unloading plugin ExpandRegion.expand_to_word_with_dots
unloading plugin ExpandRegion.expand_to_xml_node
unloading plugin ExpandRegion.ExpandRegion
reloading settings Packages/ExpandRegion/ExpandRegion.sublime-settings
reloading settings Packages/ExpandRegion/ExpandRegionFallback.sublime-settings
unloading plugin ExpandRegion.html
unloading plugin ExpandRegion.javascript
unloading plugin ExpandRegion.latex
unloading plugin ExpandRegion.python
unloading plugin ExpandRegion.utils
unloading plugin ExportHtml.ExportBbcode
unloading plugin ExportHtml.ExportHtml
unloading plugin ExportHtml.HtmlAnnotations
unloading plugin ExportHtml.support
unloading plugin ExtendedTabSwitcher.ExtendedSwitcher
unloading plugin ExtractText.clean_save_file_modifications
unloading plugin ExtractText.extract_to_file
unloading plugin FileDiffs.file_diffs
unloading plugin FileHistory.file_history
reloading settings Packages/FileHistory/FileHistory.sublime-settings
unloading plugin FileRename.file_rename
unloading plugin FindKeyConflicts.find_key_conflicts
unloading plugin FixCommandPalette.fixed_command_palette_input_history
unloading plugin FixProjectSwitchRestartBug.fix_project_switch_restart_bug
unloading plugin FixSelectionAfterIndent.fix_selection_after_indent
unloading plugin ForceRewriteSublimeSettings.force_rewrite_sublime_settings
unloading plugin FuzzyFileNav.fuzzy_file_nav
reloading settings Packages/FuzzyFileNav/fuzzy_file_nav.sublime-settings
unloading plugin FuzzyFileNav.multiconf
unloading plugin FuzzyFileNav.notify
unloading plugin FuzzyFilePath.command_goto_file
unloading plugin FuzzyFilePath.command_insert_path
unloading plugin FuzzyFilePath.command_rebuild_cache
unloading plugin FuzzyFilePath.command_replace_region
unloading plugin FuzzyFilePath.command_show_context
unloading plugin FuzzyFilePath.command_show_current_settings
unloading plugin FuzzyFilePath.command_show_info
unloading plugin FuzzyFilePath.completion
unloading plugin FuzzyFilePath.controller
unloading plugin FuzzyFilePath.current_state
unloading plugin FuzzyFilePath.expression
reloading settings Packages/FuzzyFilePath/FuzzyFilePath.sublime-settings
unloading plugin FuzzyFilePath.ProjectListener
unloading plugin FuzzyFilePath.query
unloading plugin FuzzyFilePath.QueryCompletionListener
unloading plugin FuzzyFilePath.TestRunner
unloading plugin FuzzyFilePath.ViewListener
unloading plugin Glue.__init__
unloading plugin Glue.Glue
reloading settings Packages/Glue/Glue.sublime-settings
unloading plugin Glue.GlueBrowser
unloading plugin Glue.GlueCmds
unloading plugin Glue.GlueIO
unloading plugin Glue.GlueSidebarOpener
unloading plugin GoogleSpellCheck.google-spell-check
unloading plugin HighlightBuildErrors.HighlightBuildErrors
reloading settings Packages/HighlightBuildErrors/HighlightBuildErrors.sublime-settings
unloading plugin HighlightWords.HighlightWords
reloading settings Packages/HighlightWords/HighlightWords.sublime-settings
unloading plugin HorizontalScroll.scroll_width
reloading settings Packages/HungryBackspace/Hungry Backspace.sublime-settings
unloading plugin HungryBackspace.hungry_backspace
unloading plugin Incrementor.incrementor
unloading plugin IncrementSelection.IncrementSelection
unloading plugin IndentAndBraces.indent-and-braces
unloading plugin IndentSize.IndentSizeCommand
unloading plugin InsertNums.InsertNums
unloading plugin InvertSelection.invertselection
unloading plugin JumpAlongIndent.file_scanner
unloading plugin JumpAlongIndent.jump_along_indent
reloading settings Packages/JumpAlongIndent/jump_along_indent.sublime-settings
unloading plugin JumpAlongIndent.view_helper
unloading plugin KeepPastedTextSelected.keep_pasted_text_selected
unloading plugin LaTeXSmartQuotes.getTeXRoot
unloading plugin LaTeXSmartQuotes.smartquotes
unloading plugin LaTeXTools.01_reload_submodules
unloading plugin LaTeXTools.02_temp_file_cleanup
unloading plugin LaTeXTools.03_reset_phantoms
unloading plugin LaTeXTools.auto_label
unloading plugin LaTeXTools.biblatex_crossref_completions
unloading plugin LaTeXTools.biblatex_field_name_completions
unloading plugin LaTeXTools.biblatex_name_completions
unloading plugin LaTeXTools.biblatex_snippet_completions
unloading plugin LaTeXTools.biblatex_syntax_listener
unloading plugin LaTeXTools.change_environment
unloading plugin LaTeXTools.context_provider
unloading plugin LaTeXTools.create_mousemap
unloading plugin LaTeXTools.delete_temp_files
unloading plugin LaTeXTools.detect_spellcheck
unloading plugin LaTeXTools.getTeXRoot
unloading plugin LaTeXTools.jumpto_anywhere
unloading plugin LaTeXTools.jumpto_tex_file
unloading plugin LaTeXTools.jumpToPDF
unloading plugin LaTeXTools.kpsewhich
unloading plugin LaTeXTools.latex_cite_completions
unloading plugin LaTeXTools.latex_cwl_completions
unloading plugin LaTeXTools.latex_directive_completions
unloading plugin LaTeXTools.latex_env_completions
unloading plugin LaTeXTools.latex_fill_all
unloading plugin LaTeXTools.latex_glossary_completions
unloading plugin LaTeXTools.latex_input_completions
unloading plugin LaTeXTools.latex_installed_packages
unloading plugin LaTeXTools.latex_own_command_completions
unloading plugin LaTeXTools.latex_ref_completions
unloading plugin LaTeXTools.latexCommand
unloading plugin LaTeXTools.latexDocumentationViewer
unloading plugin LaTeXTools.latexEnvCloser
unloading plugin LaTeXTools.latexEnvironment
reloading settings Packages/LaTeXTools/LaTeXTools (Advanced).sublime-settings
reloading settings Packages/LaTeXTools/LaTeXTools.sublime-settings
unloading plugin LaTeXTools.latextools_cache_listener
unloading plugin LaTeXTools.latextools_default_settings
unloading plugin LaTeXTools.latextools_plugin
unloading plugin LaTeXTools.makePDF
unloading plugin LaTeXTools.migrate
unloading plugin LaTeXTools.open_detexify
unloading plugin LaTeXTools.parseTeXlog
unloading plugin LaTeXTools.reveal_folders
unloading plugin LaTeXTools.search_commands
unloading plugin LaTeXTools.smart_paste
unloading plugin LaTeXTools.system_check
unloading plugin LaTeXTools.texcount
unloading plugin LaTeXTools.texMacro
unloading plugin LaTeXTools.texSections
unloading plugin LaTeXTools.texSyntaxListener
unloading plugin LaTeXTools.toc_quickpanel
unloading plugin LaTeXTools.toggle_settings
reloading settings Packages/LaTeXWordCount/LaTeXWordCount.sublime-settings
unloading plugin LaTeXWordCount.WordCount
reloading settings Packages/LESS/LESS.sublime-settings
unloading plugin LESS.less_completions
unloading plugin LineEndingsUnify.LineEndingsUnify
unloading plugin MarkdownPreview.helper
unloading plugin MarkdownPreview.markdown_settings
unloading plugin MarkdownPreview.markdown_wrapper
unloading plugin MarkdownPreview.MarkdownPreview
reloading settings Packages/MarkdownPreview/MarkdownPreview.sublime-settings
unloading plugin MarkdownToBBCode.MarkdownToBBCode
unloading plugin Maven.config_generator
unloading plugin Maven.import
unloading plugin Maven.maven
unloading plugin MaxPane.layouts_doc
unloading plugin MaxPane.max_pane
unloading plugin MoveText.move_text
unloading plugin MultiEditUtils.MultiEditUtils
unloading plugin MultiEditUtils.selection_fields
unloading plugin NumberKing.king
unloading plugin OpenAutoCompletion.open_auto_completion
unloading plugin Origami.origami
reloading settings Packages/OverrideAudit/OA-Diff.sublime-settings
reloading settings Packages/OverrideAudit/OA-OverrideReport.sublime-settings
reloading settings Packages/OverrideAudit/OA-PkgReport.sublime-settings
unloading plugin OverrideAudit.override_audit
OverrideAudit: Shutting down
reloading settings Packages/OverrideAudit/OverrideAudit.sublime-settings
unloading plugin OverrideCommitCompletion.overwrite_commit_completion
unloading plugin OverrideEditSettingsDefaultContents.override_edit_settings_default_contents
unloading plugin OverrideUnpackedPackages.override_unpacked_packages
unloading plugin PackageDev._logging
unloading plugin PackageDev.main
reloading settings Packages/PackageDev/Package/PackageDev.sublime-settings
reloading settings Packages/PackageDev/Package/Sublime Text Build System/Sublime Text Build System.sublime-settings
reloading settings Packages/PackageDev/Package/Sublime Text Color Scheme/Sublime Text Color Scheme.sublime-settings
reloading settings Packages/PackageDev/Package/Sublime Text Commands/Sublime Text Commands.sublime-settings
reloading settings Packages/PackageDev/Package/Sublime Text Completions/Sublime Text Completions.sublime-settings
reloading settings Packages/PackageDev/Package/Sublime Text Keymap/Sublime Text Keymap.sublime-settings
reloading settings Packages/PackageDev/Package/Sublime Text Macro/Sublime Text Macro.sublime-settings
reloading settings Packages/PackageDev/Package/Sublime Text Menu/Sublime Text Menu.sublime-settings
reloading settings Packages/PackageDev/Package/Sublime Text Mousemap/Sublime Text Mousemap.sublime-settings
reloading settings Packages/PackageDev/Package/Sublime Text Project/Sublime Text Project.sublime-settings
reloading settings Packages/PackageDev/Package/Sublime Text Settings/Sublime Text Settings.sublime-settings
reloading settings Packages/PackageDev/Package/Sublime Text Snippet/Sublime Text Snippet (Raw).sublime-settings
reloading settings Packages/PackageDev/Package/Sublime Text Snippet/Sublime Text Snippet.sublime-settings
reloading settings Packages/PackageDev/Package/Sublime Text Syntax Definition/Sublime Text Syntax Definition.sublime-settings
reloading settings Packages/PackageDev/Package/TextMate Preferences/TextMate Preferences.sublime-settings
reloading settings Packages/PackageDev/Package/TextMate Syntax Definition (YAML)/TextMate Syntax Definition (YAML).sublime-settings
unloading plugin PackageResourceViewer.package_resource_viewer
unloading plugin PackageResourceViewer.package_resources
reloading settings Packages/PackageResourceViewer/PackageResourceViewer.sublime-settings
unloading plugin PackagesManager.1_reloader
unloading plugin PackagesManager.2_bootstrap
unloading plugin PackagesManager.PackagesManager
reloading settings Packages/PackagesManager/PackagesManager.sublime-settings
unloading plugin PathTranslator.PathTranslator
unloading plugin PowerCursors.power_cursors
reloading settings Packages/PrettyJSON/Pretty JSON.sublime-settings
unloading plugin PrettyJSON.PrettyJson
unloading plugin PrettyJSON.PrettyJsonListeners
reloading settings Packages/QuickSettings/Preferences.sublime-settings
unloading plugin QuickSettings.QuickSettigns
unloading plugin RandomEverything.__init__
unloading plugin RandomEverything.random
unloading plugin REG.jumptoregkey
reloading settings Packages/REG/REG.sublime-settings
unloading plugin ReIndent.ReIndent
unloading plugin REPL.__init__
unloading plugin REPL.completions
unloading plugin REPL.lang_integration
unloading plugin REPL.run_existing_command
unloading plugin REPL.sublimerepl
unloading plugin REPL.sublimerepl_build_system_hack
unloading plugin REPL.text_transfer
reloading settings Packages/REPL/config/OCaml/OCaml (toplevel).sublime-settings
unloading plugin ScopeHunter.scope_hunter
reloading settings Packages/ScopeHunter/scope_hunter.sublime-settings
unloading plugin ScopeHunter.scope_hunter_notify
unloading plugin ScopeHunter.support
unloading plugin SelectAll.select_all_by_current_scope
unloading plugin SelectAllSpellingErrors.select_all_spelling_errors
unloading plugin SelectUntil.edit
unloading plugin SelectUntil.select-until
unloading plugin SemanticLineWrap.semantic_wrap
reloading settings Packages/SideBarEnhancements/Side Bar.sublime-settings
unloading plugin SideBarEnhancements.SideBar
unloading plugin SideBarEnhancements.SideBarAPI
unloading plugin SideBarEnhancements.SideBarDefaultDisable
unloading plugin SideBySideSettings.sxs_settings
reloading settings Packages/SideBySideSettings/sxs_settings.sublime-settings
unloading plugin SQLExec.SQLExec
unloading plugin SQLKeywordUppercase.sql_keyword_uppercase
unloading plugin SQLTools.SQLTools
unloading plugin StickySearch.StickySearch
unloading plugin StudioChannel.commands
unloading plugin StudioChannel.settings
unloading plugin SublimeLinter.busy_indicator_view
unloading plugin SublimeLinter.commands
unloading plugin SublimeLinter.status_bar_view
unloading plugin SublimeLinter.sublime_linter
reloading settings Packages/SublimeLinter/SublimeLinter.sublime-settings
unloading plugin SublimeTutorial.sublime_tutor
reloading settings Packages/SyncViewScroll/Sync View Scroll.sublime-settings
unloading plugin SyncViewScroll.syncscroll
unloading plugin SyntaxManager.syntaxmgr
reloading settings Packages/SyntaxManager/SyntaxMgr.sublime-settings
unloading plugin TabsExtra.support
unloading plugin TabsExtra.tab_menu
unloading plugin TabsExtra.tab_sort_helper
unloading plugin TabsExtra.tabs_extra
reloading settings Packages/TabsExtra/tabs_extra.sublime-settings
unloading plugin TerminalShortcuts.Terminal
unloading plugin TextPastry.text_pastry
unloading plugin TextPastry.text_pastry_addons
unloading plugin TextPastry.text_pastry_clipboard
unloading plugin TextPastry.text_pastry_selection
reloading settings Packages/TextPastry/TextPastry.sublime-settings
unloading plugin ToggleWords.ToggleWords
unloading plugin Trimmer.Trimmer
unloading plugin UnitTesting.ut
unloading plugin ViewSettingsFreely.view_settings_freely
unloading plugin Whitespace.Whitespace
unloading plugin WordCount.WordCount
reloading settings Packages/WordCount/WordCount.sublime-settings
reloading settings Packages/WrapPlus/Base File.sublime-settings
unloading plugin WrapPlus.wrap_plus
generating syntax summary
generating meta info summary


But the hang was much worse like 2 minutes when enabling then again. This was the console output when enabling them after disabling them:

reloading settings Packages/User/Preferences.sublime-settings
ignored packages updated to: ["Anaconda", "ApplySyntax", "BracketHighlighter", "BuildView", "C++
Completions", "C++ Qt Completions", "C++ Snippets", "CodeIntel", "ColorHelper",
"DictionaryAutoComplete", "FileManager", "Find++", "Gist", "Git", "GitGutter",
"GotoLastEditEnhanced", "Javatar", "JediPythonAutoCompletion", "LocalHistory", "MatlabCompletions",
"MatlabFilenameAutoComplete", "MySQLSnippets", "ProjectSpecificSyntax", "ScopeAlways",
"SublimeLinter-javac", "SyncedSideBar", "TypeScript", "Vintage", "WordHighlight"]
reloading plugin 0_settings_loader.install_package_control_extended
reloading settings Packages/0_settings_loader/Preferences (Windows).sublime-settings
reloading settings Packages/0_settings_loader/Preferences.sublime-settings
reloading plugin 0_settings_loader.synced_side_bar_watcher
reloading plugin AceJump.ace_jump
reloading settings Packages/AceJump/AceJump.sublime-settings
generating syntax summary
reloading plugin ActiveViewJumpBack.active_view_jump_back
reloading plugin AddFolderToProject.AddFolderToProject
reloading plugin A File Icon.A File Icon
reloading settings Packages/AdvancedCSV/AdvancedCSV.sublime-settings
reloading plugin AdvancedCSV.csvplugin
generating syntax summary
reloading plugin Alignment.Alignment
reloading settings Packages/Alignment/CSS.sublime-settings
reloading settings Packages/Alignment/JSON.sublime-settings
reloading settings Packages/Alignment/Preferences.sublime-settings
reloading settings Packages/AllAutocomplete/All Autocomplete.sublime-settings
reloading plugin AllAutocomplete.all_views_completions
reloading plugin AlignTab.aligner
reloading plugin AlignTab.aligntab
reloading plugin AlignTab.hist
reloading plugin AlignTab.parser
reloading plugin AlignTab.table
reloading plugin AlignTab.wclen
reloading plugin AltUp.run_multiple_commands
reloading plugin AmxxChannel.commands
reloading plugin AmxxChannel.fix_main_menus
reloading plugin AmxxChannel.settings
reloading settings Packages/Amxmodx/AMXX-Console.sublime-settings
reloading settings Packages/Amxmodx/amxx.sublime-settings
reloading plugin Amxmodx.AMXXEditor
generating syntax summary
generating meta info summary
reloading settings Packages/AmxxPawn/AmxxPawn.sublime-settings
generating syntax summary
generating meta info summary
reloading plugin ANSIescape.ansi
reloading settings Packages/ANSIescape/ansi.sublime-settings
generating syntax summary
reloading plugin AutoFileName.autofilename
reloading settings Packages/AutoFileName/autofilename.sublime-settings
reloading plugin AutoFileName.getimageinfo
reloading plugin AutomaticPackageReloader.package_reloader
reloading settings Packages/AutomaticPackageReloader/package_reloader.sublime-settings
reloading plugin AutoRefresh.AutoRefresh
reloading settings Packages/AutoRefresh/AutoRefresh.sublime-settings
reloading settings Packages/BBCode/BBCode.sublime-settings
generating syntax summary
generating meta info summary
reloading plugin AutoWrap.autowrap
reloading settings Packages/AutoWrap/Preferences.sublime-settings
reloading settings Packages/BetterFindBuffer/BetterFindBuffer.sublime-settings
reloading settings Packages/BetterFindBuffer/Find Results.sublime-settings
reloading plugin BetterFindBuffer.find_results
generating meta info summary
reloading plugin BufferScroll.BufferScroll
reloading settings Packages/BufferScroll/BufferScroll.sublime-settings
reloading plugin BetterCoffeeScript.CoffeeScript
reloading settings Packages/BetterCoffeeScript/CoffeeScript.sublime-settings
generating syntax summary
generating meta info summary
reloading plugin ChainOfCommand.chain
reloading plugin CaseConversion.case_conversion
reloading plugin CaseConversion.case_parse
reloading plugin CaseConversion.ToggleTitleCase
reloading plugin ChannelRepositoryTools.ordereddict
reloading plugin ChannelRepositoryTools.tests
reloading plugin ChannelRepositoryTools.upgrade
reloading plugin ChangeQuotes.change_quotes
Traceback (most recent call last):
  File "F:\SublimeText\sublime_plugin.py", line 157, in reload_plugin
    m.plugin_loaded()
  File "F:\SublimeText\Data\Packages\ChangeQuotes\change_quotes.py", line 80, in plugin_loaded
    build_config(settings)
  File "F:\SublimeText\Data\Packages\ChangeQuotes\change_quotes.py", line 62, in build_config
    config["lists"] = reorder_list_settings(settings.get("lists"))
  File "F:\SublimeText\Data\Packages\ChangeQuotes\change_quotes.py", line 31, in reorder_list_settings
    for scope, conf in list_settings.items():
AttributeError: 'NoneType' object has no attribute 'items'
reloading settings Packages/ChangeQuotes/ChangeQuotes.sublime-settings
reloading plugin ClearCursorsCarets.clear_cursors_carets
reloading plugin ClickableURLs.clickable_urls
reloading plugin ClipboardScopeCopy.clipboard_scope_copy
reloading plugin ColorSchemeEditor.ColorSchemeEditor-ST2
reloading plugin ColorSchemeUnit.plugin
reloading settings Packages/ColorSchemeUnit/Preferences.sublime-settings
reloading plugin ColumnSelect.column_select
reloading plugin Color Highlighter.color_converter
reloading plugin Color Highlighter.color_highlighter
reloading plugin Color Highlighter.color_hover_listener
reloading plugin Color Highlighter.color_scheme
reloading plugin Color Highlighter.color_scheme_color_highlighter
reloading plugin Color Highlighter.color_searcher
reloading plugin Color Highlighter.color_selection_listener
reloading settings Packages/Color Highlighter/ColorHighlighter.sublime-settings
reloading plugin Color Highlighter.colors
reloading plugin Color Highlighter.content_listener
reloading plugin Color Highlighter.convert_color_command
reloading plugin Color Highlighter.css_colors
reloading plugin Color Highlighter.dummy_event_listener
reloading plugin Color Highlighter.gutter_icons_color_highlighter
reloading plugin Color Highlighter.load_resource
reloading plugin Color Highlighter.main
reloading plugin Color Highlighter.path
reloading plugin Color Highlighter.phantoms_color_highlighter
reloading plugin Color Highlighter.pick_color_command
reloading plugin Color Highlighter.regex_compiler
reloading plugin Color Highlighter.regions
reloading plugin Color Highlighter.set_setting_command
reloading plugin Color Highlighter.settings
reloading plugin Color Highlighter.st_helper
reloading plugin Color Highlighter.topsort
reloading plugin CompareSideBySide.sbs_compare
reloading plugin CopyFilepathWithLineNumbers.CopyFilepathWithLineNumbers
reloading plugin ConvertToUTF8.ConvertToUTF8
reloading settings Packages/ConvertToUTF8/ConvertToUTF8.sublime-settings
reloading plugin CopyWithLineNumbersReloaded.copy_with_line_numbers
reloading plugin DefaultSyntax.default_syntax
reloading settings Packages/DefaultSyntax/Preferences.sublime-settings
reloading plugin DeleteCurrentFile.DeleteCurrentFile
reloading settings Packages/DeleteCurrentFile/DeleteCurrentFile.sublime-settings
reloading plugin DocBlockr.jsdocs
reloading settings Packages/DocBlockr/Preferences.sublime-settings
reloading plugin DocBlockr.test_runner
reloading plugin DistractionFreeWindow.distraction_free_window
reloading plugin DuplicateSelections.duplicate_selections
reloading settings Packages/Dotfiles/Shell-Unix-Generic.sublime-settings
reloading plugin EditPreferences.__init__
reloading plugin EditPreferences.commands_base
reloading settings Packages/EditPreferences/edit-preferences.sublime-settings
reloading plugin EditPreferences.edit_package_files
reloading plugin EditPreferences.extract_snippets
reloading plugin EditPreferences.helper_commands
reloading plugin EditPreferences.helpers
reloading plugin EditPreferences.insert_binding_repr
reloading plugin EditPreferences.jsonix
reloading plugin EditPreferences.list_commands
reloading plugin EditPreferences.list_menu_bindings
reloading plugin EditPreferences.list_settings
reloading plugin EditPreferences.list_shortcut_keys
reloading plugin EditPreferences.list_theme_selectors
reloading plugin EditPreferences.package_resources
reloading plugin EditPreferences.quick_panel_cols
reloading plugin EditPreferences.scheduler
reloading plugin ExpandRegion.__init__
reloading plugin ExpandRegion.expand_region_handler
reloading plugin ExpandRegion.expand_to_indent
reloading plugin ExpandRegion.expand_to_line
reloading plugin ExpandRegion.expand_to_quotes
reloading plugin ExpandRegion.expand_to_regex_set
reloading plugin ExpandRegion.expand_to_semantic_unit
reloading plugin ExpandRegion.expand_to_subword
reloading plugin ExpandRegion.expand_to_symbols
reloading plugin ExpandRegion.expand_to_word
reloading plugin ExpandRegion.expand_to_word_with_dots
reloading plugin ExpandRegion.expand_to_xml_node
reloading plugin ExpandRegion.ExpandRegion
reloading settings Packages/ExpandRegion/ExpandRegion.sublime-settings
reloading settings Packages/ExpandRegion/ExpandRegionFallback.sublime-settings
reloading plugin ExpandRegion.html
reloading plugin ExpandRegion.javascript
reloading plugin ExpandRegion.latex
reloading plugin ExpandRegion.python
reloading plugin ExpandRegion.utils
reloading plugin Emmet.emmet-plugin
reloading settings Packages/Emmet/Emmet.sublime-settings
reloading settings Packages/Emmet/Preferences.sublime-settings
generating syntax summary
reloading plugin ExtendedTabSwitcher.ExtendedSwitcher
reloading plugin ExtractText.clean_save_file_modifications
reloading plugin ExtractText.extract_to_file
reloading plugin FileDiffs.file_diffs
reloading plugin FileHistory.file_history
reloading settings Packages/FileHistory/FileHistory.sublime-settings
reloading plugin FileRename.file_rename
reloading plugin FindKeyConflicts.find_key_conflicts
reloading plugin FixCommandPalette.fixed_command_palette_input_history
reloading plugin FixProjectSwitchRestartBug.fix_project_switch_restart_bug
reloading plugin FixSelectionAfterIndent.fix_selection_after_indent
reloading plugin ForceRewriteSublimeSettings.force_rewrite_sublime_settings
reloading plugin FuzzyFileNav.fuzzy_file_nav
reloading settings Packages/FuzzyFileNav/fuzzy_file_nav.sublime-settings
reloading plugin FuzzyFileNav.multiconf
reloading plugin FuzzyFileNav.notify
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
reloading plugin FuzzyFilePath.command_goto_file
reloading plugin FuzzyFilePath.command_insert_path
reloading plugin FuzzyFilePath.command_rebuild_cache
reloading plugin FuzzyFilePath.command_replace_region
reloading plugin FuzzyFilePath.command_show_context
reloading plugin FuzzyFilePath.command_show_current_settings
reloading plugin FuzzyFilePath.command_show_info
reloading plugin FuzzyFilePath.completion
reloading plugin FuzzyFilePath.controller
reloading plugin FuzzyFilePath.current_state
reloading plugin FuzzyFilePath.expression
reloading settings Packages/FuzzyFilePath/FuzzyFilePath.sublime-settings
reloading plugin FuzzyFilePath.ProjectListener
reloading plugin FuzzyFilePath.query
reloading plugin FuzzyFilePath.QueryCompletionListener
reloading plugin FuzzyFilePath.TestRunner
reloading plugin FuzzyFilePath.ViewListener
generating syntax summary
generating meta info summary
reloading plugin ExportHtml.ExportBbcode
reloading plugin ExportHtml.ExportHtml
reloading plugin ExportHtml.HtmlAnnotations
reloading plugin ExportHtml.support
reloading plugin Glue.__init__
reloading plugin Glue.Glue
reloading settings Packages/Glue/Glue.sublime-settings
reloading plugin Glue.GlueBrowser
reloading plugin Glue.GlueCmds
reloading plugin Glue.GlueIO
reloading plugin Glue.GlueSidebarOpener
reloading plugin GoogleSpellCheck.google-spell-check
reloading plugin HighlightBuildErrors.HighlightBuildErrors
reloading settings Packages/HighlightBuildErrors/HighlightBuildErrors.sublime-settings
reloading plugin HighlightWords.HighlightWords
reloading settings Packages/HighlightWords/HighlightWords.sublime-settings
reloading plugin HorizontalScroll.scroll_width
reloading settings Packages/HungryBackspace/Hungry Backspace.sublime-settings
reloading plugin HungryBackspace.hungry_backspace
reloading plugin Incrementor.incrementor
reloading plugin IndentAndBraces.indent-and-braces
reloading plugin IncrementSelection.IncrementSelection
reloading plugin IndentSize.IndentSizeCommand
reloading plugin InsertNums.InsertNums
reloading plugin InvertSelection.invertselection
reloading plugin JumpAlongIndent.file_scanner
reloading plugin JumpAlongIndent.jump_along_indent
reloading settings Packages/JumpAlongIndent/jump_along_indent.sublime-settings
reloading plugin JumpAlongIndent.view_helper
reloading plugin KeepPastedTextSelected.keep_pasted_text_selected
reloading plugin LaTeXSmartQuotes.getTeXRoot
reloading plugin LaTeXSmartQuotes.smartquotes
reloading settings Packages/LaTeXWordCount/LaTeXWordCount.sublime-settings
reloading plugin LaTeXWordCount.WordCount
reloading settings Packages/LESS/LESS.sublime-settings
reloading plugin LESS.less_completions
generating syntax summary
generating meta info summary
reloading plugin LineEndingsUnify.LineEndingsUnify
reloading plugin LaTeXTools.01_reload_submodules
reloading plugin LaTeXTools.02_temp_file_cleanup
reloading plugin LaTeXTools.03_reset_phantoms
reloading plugin LaTeXTools.auto_label
reloading plugin LaTeXTools.biblatex_crossref_completions
reloading plugin LaTeXTools.biblatex_field_name_completions
reloading plugin LaTeXTools.biblatex_name_completions
reloading plugin LaTeXTools.biblatex_snippet_completions
reloading plugin LaTeXTools.biblatex_syntax_listener
reloading plugin LaTeXTools.change_environment
reloading plugin LaTeXTools.context_provider
reloading plugin LaTeXTools.create_mousemap
reloading plugin LaTeXTools.delete_temp_files
reloading plugin LaTeXTools.detect_spellcheck
reloading plugin LaTeXTools.getTeXRoot
reloading plugin LaTeXTools.jumpto_anywhere
reloading plugin LaTeXTools.jumpto_tex_file
reloading plugin LaTeXTools.jumpToPDF
reloading plugin LaTeXTools.kpsewhich
reloading plugin LaTeXTools.latex_cite_completions
reloading plugin LaTeXTools.latex_cwl_completions
reloading plugin LaTeXTools.latex_directive_completions
reloading plugin LaTeXTools.latex_env_completions
reloading plugin LaTeXTools.latex_fill_all
reloading plugin LaTeXTools.latex_glossary_completions
reloading plugin LaTeXTools.latex_input_completions
reloading plugin LaTeXTools.latex_installed_packages
reloading plugin LaTeXTools.latex_own_command_completions
reloading plugin LaTeXTools.latex_ref_completions
reloading plugin LaTeXTools.latexCommand
reloading plugin LaTeXTools.latexDocumentationViewer
reloading plugin LaTeXTools.latexEnvCloser
reloading plugin LaTeXTools.latexEnvironment
reloading settings Packages/LaTeXTools/LaTeXTools (Advanced).sublime-settings
reloading settings Packages/LaTeXTools/LaTeXTools.sublime-settings
reloading plugin LaTeXTools.latextools_cache_listener
reloading plugin LaTeXTools.latextools_default_settings
reloading plugin LaTeXTools.latextools_plugin
reloading plugin LaTeXTools.makePDF
Loaded LaTeXTools plugins ['pdf_builder'] from path F:\SublimeText\Data\Packages\LaTeXTools\builders\pdfBuilder.py
Loaded LaTeXTools plugins ['basic_builder', 'traditional_builder', 'script_builder', 'simple_builder'] from path F:\SublimeText\Data\Packages\LaTeXTools\builders
reloading plugin LaTeXTools.migrate
reloading plugin LaTeXTools.open_detexify
reloading plugin LaTeXTools.parseTeXlog
reloading plugin LaTeXTools.reveal_folders
reloading plugin LaTeXTools.search_commands
reloading plugin LaTeXTools.smart_paste
reloading plugin LaTeXTools.system_check
reloading plugin LaTeXTools.texcount
reloading plugin LaTeXTools.texMacro
reloading plugin LaTeXTools.texSections
reloading plugin LaTeXTools.texSyntaxListener
reloading plugin LaTeXTools.toc_quickpanel
reloading plugin LaTeXTools.toggle_settings
generating syntax summary
reloading plugin MarkdownToBBCode.MarkdownToBBCode
reloading plugin MarkdownPreview.helper
reloading plugin MarkdownPreview.markdown_settings
reloading plugin MarkdownPreview.markdown_wrapper
reloading plugin MarkdownPreview.MarkdownPreview
reloading settings Packages/MarkdownPreview/MarkdownPreview.sublime-settings
reloading plugin MaxPane.layouts_doc
reloading plugin MaxPane.max_pane
reloading plugin MoveText.move_text
reloading plugin Maven.config_generator
reloading plugin Maven.import
reloading plugin Maven.maven
reloading plugin MultiEditUtils.MultiEditUtils
reloading plugin MultiEditUtils.selection_fields
generating syntax summary
generating meta info summary
reloading plugin NumberKing.king
reloading plugin Origami.origami
reloading plugin OpenAutoCompletion.open_auto_completion
reloading plugin OverrideCommitCompletion.overwrite_commit_completion
reloading plugin OverrideEditSettingsDefaultContents.override_edit_settings_default_contents
reloading plugin OverrideUnpackedPackages.override_unpacked_packages
reloading plugin PackageDev._logging
reloading plugin PackageDev.main
reloading settings Packages/OverrideAudit/OA-Diff.sublime-settings
reloading settings Packages/OverrideAudit/OA-OverrideReport.sublime-settings
reloading settings Packages/OverrideAudit/OA-PkgReport.sublime-settings
reloading plugin OverrideAudit.override_audit
OverrideAudit: Initializing
OverrideAudit: Sublime version is unchanged; skipping automatic report
reloading settings Packages/OverrideAudit/OverrideAudit.sublime-settings
reloading plugin PackageResourceViewer.package_resource_viewer
reloading plugin PackageResourceViewer.package_resources
reloading settings Packages/PackageResourceViewer/PackageResourceViewer.sublime-settings
reloading plugin PathTranslator.PathTranslator
generating syntax summary
generating meta info summary
reloading plugin PowerCursors.power_cursors
reloading settings Packages/PrettyJSON/Pretty JSON.sublime-settings
reloading plugin PrettyJSON.PrettyJson
reloading plugin PrettyJSON.PrettyJsonListeners
reloading settings Packages/QuickSettings/Preferences.sublime-settings
reloading plugin QuickSettings.QuickSettigns
reloading plugin PackagesManager.1_reloader
reloading plugin PackagesManager.2_bootstrap
reloading plugin PackagesManager.PackagesManager
reloading settings Packages/PackagesManager/PackagesManager.sublime-settings
reloading plugin RandomEverything.__init__
reloading plugin RandomEverything.random
reloading plugin ReIndent.ReIndent
reloading plugin REG.jumptoregkey
reloading settings Packages/REG/REG.sublime-settings
generating syntax summary
generating meta info summary
generating syntax summary
generating meta info summary
reloading plugin ScopeHunter.scope_hunter
reloading settings Packages/ScopeHunter/scope_hunter.sublime-settings
reloading plugin ScopeHunter.scope_hunter_notify
reloading plugin ScopeHunter.support
reloading plugin SelectAll.select_all_by_current_scope
reloading plugin SelectAllSpellingErrors.select_all_spelling_errors
reloading plugin SelectUntil.edit
reloading plugin SelectUntil.select-until
reloading plugin REPL.__init__
reloading plugin REPL.completions
reloading plugin REPL.lang_integration
reloading plugin REPL.run_existing_command
reloading plugin REPL.sublimerepl
reloading plugin REPL.sublimerepl_build_system_hack
reloading plugin REPL.text_transfer
reloading plugin SemanticLineWrap.semantic_wrap
reloading plugin SideBySideSettings.sxs_settings
reloading settings Packages/SideBySideSettings/sxs_settings.sublime-settings
reloading settings Packages/SideBarEnhancements/Side Bar.sublime-settings
reloading plugin SideBarEnhancements.SideBar
reloading plugin SideBarEnhancements.SideBarAPI
reloading plugin SideBarEnhancements.SideBarDefaultDisable
reloading plugin SQLKeywordUppercase.sql_keyword_uppercase
reloading plugin SQLExec.SQLExec
reloading plugin StickySearch.StickySearch
reloading plugin SQLTools.SQLTools
reloading plugin StudioChannel.commands
reloading plugin StudioChannel.settings
reloading plugin SublimeTutorial.sublime_tutor
reloading plugin SublimeLinter.busy_indicator_view
reloading plugin SublimeLinter.commands
reloading plugin SublimeLinter.status_bar_view
reloading plugin SublimeLinter.sublime_linter
Traceback (most recent call last):
  File "F:\SublimeText\sublime_plugin.py", line 157, in reload_plugin
    m.plugin_loaded()
  File "F:\SublimeText\Data\Packages\SublimeLinter\sublime_linter.py", line 46, in plugin_loaded
    persist.settings.load()
  File "F:\SublimeText\Data\Packages\SublimeLinter\lint\settings.py", line 63, in load
    self.on_update()
  File "F:\SublimeText\Data\Packages\SublimeLinter\lint\settings.py", line 176, in on_update
    self.update_gutter_icons()
  File "F:\SublimeText\Data\Packages\SublimeLinter\lint\settings.py", line 190, in update_gutter_icons
    theme_file = os.path.basename(theme_path)
  File "./python3.3/ntpath.py", line 249, in basename
  File "./python3.3/ntpath.py", line 220, in split
  File "./python3.3/ntpath.py", line 162, in splitdrive
TypeError: object of type 'NoneType' has no len()
reloading settings Packages/SublimeLinter/SublimeLinter.sublime-settings
reloading plugin SyntaxManager.syntaxmgr
reloading settings Packages/SyntaxManager/SyntaxMgr.sublime-settings
reloading settings Packages/SyncViewScroll/Sync View Scroll.sublime-settings
reloading plugin SyncViewScroll.syncscroll
syncScroll starting
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\SyncViewScroll\syncscroll.py", line 72, in updateStatus
    settings = sublime.load_settings('Sync View Scroll.sublime-settings')
AttributeError: 'NoneType' object has no attribute 'load_settings'
reloading plugin TabsExtra.support
reloading plugin TabsExtra.tab_menu
reloading plugin TabsExtra.tab_sort_helper
reloading plugin TabsExtra.tabs_extra
reloading settings Packages/TabsExtra/tabs_extra.sublime-settings
reloading plugin TextPastry.text_pastry
reloading plugin TextPastry.text_pastry_addons
reloading plugin TextPastry.text_pastry_clipboard
reloading plugin TextPastry.text_pastry_selection
reloading settings Packages/TextPastry/TextPastry.sublime-settings
reloading plugin TerminalShortcuts.Terminal
reloading plugin ToggleWords.ToggleWords
generating syntax summary
generating meta info summary
reloading plugin Trimmer.Trimmer
reloading plugin UnitTesting.ut
reloading plugin ViewSettingsFreely.view_settings_freely
generating syntax summary
generating meta info summary
reloading plugin Whitespace.Whitespace
reloading plugin WordCount.WordCount
reloading settings Packages/WordCount/WordCount.sublime-settings
reloading settings Packages/WrapPlus/Base File.sublime-settings
reloading plugin WrapPlus.wrap_plus
reloading settings Packages/A File Icon/.sublime/A File Icon.sublime-settings
generating meta info summary
Regenerating ANSI color scheme...
Unhandled exception in thread started by <function synch_scroll_loop at 0x03B02030>
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 899, in synch_scroll_loop
    if not Pref.synch_scroll_running:
AttributeError: 'NoneType' object has no attribute 'synch_scroll_running'
Unhandled exception in thread started by <function synch_data_loop at 0x03B028A0>
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 909, in synch_data_loop
    if not Pref.synch_data_running:
AttributeError: 'NoneType' object has no attribute 'synch_data_running'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\ChangeQuotes\change_quotes.py", line 67, in load_config
    settings = sublime.load_settings("ChangeQuotes.sublime-settings")
AttributeError: 'NoneType' object has no attribute 'load_settings'
generating syntax summary
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\DeleteCurrentFile\DeleteCurrentFile.py", line 11, in update_settings
    settings = sublime.load_settings('DeleteCurrentFile.sublime-settings')
AttributeError: 'NoneType' object has no attribute 'load_settings'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\Emmet\emmet-plugin.py", line 237, in update_settings
    ctx.set_ext_path(get_extensions_path())
AttributeError: 'NoneType' object has no attribute 'set_ext_path'
[FileHistory] Reloading the settings file "FileHistory.sublime-settings".
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\FuzzyFilePath\controller.py", line 26, in update_settings
    Settings.update()
AttributeError: 'NoneType' object has no attribute 'update'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\HighlightBuildErrors\HighlightBuildErrors.py", line 38, in load_config
    settings = sublime.load_settings(SETTINGS_FILE)
AttributeError: 'NoneType' object has no attribute 'load_settings'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\HighlightWords\HighlightWords.py", line 156, in get_settings
    setting = sublime.load_settings('HighlightWords.sublime-settings')
AttributeError: 'NoneType' object has no attribute 'load_settings'
Loading LaTeXTools plugins...
reloading settings Packages/PackageDev/Package/PackageDev.sublime-settings
generating syntax summary
generating syntax summary
generating meta info summary
generating meta info summary
generating syntax summary
generating syntax summary
generating meta info summary
generating syntax summary
Unhandled exception in thread started by <function synch_scroll_loop at 0x0385F588>
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\SyncViewScroll\syncscroll.py", line 43, in synch_scroll_loop
    sublime.set_timeout(lambda: synch_scroll(), 0)
AttributeError: 'NoneType' object has no attribute 'set_timeout'
generating syntax summary
PyV8: Creating new thread
Emmet: Creating thread
PackagesManager: Settings change detected, clearing cache
FFP  CurrentState Abort rebuild filecache -- folder F:/SublimeText/Data not cached
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 901, in <lambda>
    sublime.set_timeout(lambda:synch_scroll(), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 763, in synch_scroll
    Pref.synch_scroll_running = True
AttributeError: 'NoneType' object has no attribute 'synch_scroll_running'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\SyncViewScroll\syncscroll.py", line 43, in <lambda>
    sublime.set_timeout(lambda: synch_scroll(), 0)
TypeError: 'NoneType' object is not callable
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
Traceback (most recent call last):
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 910, in <lambda>
    sublime.set_timeout(lambda:synch_data(None, 'thread'), 0)
  File "F:\SublimeText\Data\Packages\BufferScroll\BufferScroll.py", line 670, in synch_data
    view = Pref.synch_scroll_current_view_object
AttributeError: 'NoneType' object has no attribute 'synch_scroll_current_view_object'
Detected ASCII vs UTF-8 with 100% confidence
generating syntax summary
generating syntax summary
reloading settings Packages/PackageDev/Package/Sublime Text Build System/Sublime Text Build System.sublime-settings
generating syntax summary
generating meta info summary
reloading settings Packages/PackageDev/Package/Sublime Text Commands/Sublime Text Commands.sublime-settings
generating syntax summary
generating meta info summary
reloading settings Packages/PackageDev/Package/Sublime Text Color Scheme/Sublime Text Color Scheme.sublime-settings
generating syntax summary
generating meta info summary
reloading settings Packages/PackageDev/Package/Sublime Text Keymap/Sublime Text Keymap.sublime-settings
generating syntax summary
generating meta info summary
reloading settings Packages/PackageDev/Package/Sublime Text Completions/Sublime Text Completions.sublime-settings
generating syntax summary
generating meta info summary
reloading settings Packages/PackageDev/Package/Sublime Text Menu/Sublime Text Menu.sublime-settings
generating syntax summary
generating meta info summary
reloading settings Packages/PackageDev/Package/Sublime Text Macro/Sublime Text Macro.sublime-settings
generating syntax summary
reloading settings Packages/PackageDev/Package/Sublime Text Mousemap/Sublime Text Mousemap.sublime-settings
generating syntax summary
generating meta info summary
reloading settings Packages/PackageDev/Package/Sublime Text Settings/Sublime Text Settings.sublime-settings
generating syntax summary
generating meta info summary
reloading settings Packages/PackageDev/Package/Sublime Text Snippet/Sublime Text Snippet (Raw).sublime-settings
reloading settings Packages/PackageDev/Package/Sublime Text Snippet/Sublime Text Snippet.sublime-settings
generating syntax summary
reloading settings Packages/PackageDev/Package/Sublime Text Project/Sublime Text Project.sublime-settings
generating syntax summary
reloading settings Packages/PackageDev/Package/Sublime Text Syntax Definition/Sublime Text Syntax Definition.sublime-settings
generating syntax summary
generating meta info summary
generating syntax summary
generating meta info summary
reloading settings Packages/PackageDev/Package/TextMate Syntax Definition (YAML)/TextMate Syntax Definition (YAML).sublime-settings
generating syntax summary
generating meta info summary
reloading settings Packages/PackageDev/Package/TextMate Preferences/TextMate Preferences.sublime-settings
generating syntax summary
generating meta info summary
generating syntax summary
generating syntax summary
reloading settings Packages/REPL/config/OCaml/OCaml (toplevel).sublime-settings
generating syntax summary
generating syntax summary
generating meta info summary
Emmet: Loading https://api.github.com/repos/emmetio/pyv8-binaries/contents
Emmet: You have the most recent PyV8 binary
generating syntax summary
warning: mnemonic r not found in menu caption SublimeREPL
generating syntax summary
FFP  Settings found folder settings . : {}

Loaded LaTeXTools plugins ['base_viewer'] from path F:\SublimeText\Data\Packages\LaTeXTools\viewers\base_viewer.py
Loaded LaTeXTools plugins ['evince_viewer', 'sumatra_viewer', 'skim_viewer', 'zathura_viewer', 'command_viewer', 'okular_viewer', 'preview_viewer'] from path F:\SublimeText\Data\Packages\LaTeXTools\viewers
Loaded LaTeXTools plugins ['traditional_bibliography', 'new_bibliography'] from path F:\SublimeText\Data\Packages\LaTeXTools\bibliography_plugins
Loaded LaTeXTools plugins [] from path F:\SublimeText\Data\Packages\LaTeXTools\builders\pdfBuilder.py
Loaded LaTeXTools plugins [] from path F:\SublimeText\Data\Packages\LaTeXTools\builders
reloading settings Packages/User/BufferScroll.sublime-settings
Exception in thread Thread-508:
Traceback (most recent call last):
  File "./python3.3/threading.py", line 901, in _bootstrap_inner
  File "./python3.3/threading.py", line 1142, in run
  File "F:\SublimeText\Data\Packages\SublimeLinter\lint\queue.py", line 35, in worker
    callback(vid, hit_time)
  File "F:\SublimeText\Data\Packages\SublimeLinter\sublime_linter.py", line 220, in lint
    if hit_time and persist.last_hit_times.get(view_id, 0) > hit_time:
AttributeError: 'NoneType' object has no attribute 'last_hit_times'

Exception in thread Thread-509:
Traceback (most recent call last):
  File "./python3.3/threading.py", line 901, in _bootstrap_inner
  File "./python3.3/threading.py", line 1142, in run
  File "F:\SublimeText\Data\Packages\SublimeLinter\lint\queue.py", line 35, in worker
    callback(vid, hit_time)
  File "F:\SublimeText\Data\Packages\SublimeLinter\sublime_linter.py", line 220, in lint
    if hit_time and persist.last_hit_times.get(view_id, 0) > hit_time:
AttributeError: 'NoneType' object has no attribute 'last_hit_times'

indexing [job 84]: no files were indexed out of the 4096 queued, abandoning crawl
FuzzyFilePath cached 8615 files in F:/SublimeText/Data
PackagesManager: No updated packages
indexing [job 87]: no files were indexed out of the 4074 queued, abandoning crawl


Also, notice my computer does not load the Sublime Packages much faster, then if Sublime Text hangs the UI when mass enabling packages will take a huge time for the reloading. This is the loading speed:

back3


The correct behavior for unloading and reloading should be Sublime Text reload them one by one not hanging the UI as when Sublime Text starts.

@FichteFoll
Copy link
Collaborator

I can confirm this as I was developing a plugin to implement a binary search algorithm in order to find mis-behaving packages. ST locks up for several seconds, plugin_host crashes, then occasionally ST crashes itself, when I disable 97 packages at once.

There was also odd behavior when reenabling those 97 packages again (also crashes of both plugin_host and ST with the ignored_packages setting then being removed from my user preferences file entirely, as indicated by #2132).

I suppose the best workaround currently is to close ST and mutate the ignored_packages setting while it is not running, or do like in #2132 and (batch) modify the ignored package list n at a time.

@evandrocoan
Copy link
Author

evandrocoan commented Nov 29, 2018

As of today, you can find the latest version of the script to batch modify the ignored package list n packages at a time on:

  1. https://github.com/evandrocoan/ChannelManager/blob/bc6fde5a46d2a2ce6aca830366d2b5fb13ddab00/all/channel_manager/channel_installer.py#L1432-L1553

Here, it is resume of it outside the context of the channel_installer.py plugin. It should be a simple copy and paste to get it working and iterating throw all your installed packages one by one:

import sublime

import time
import functools

# from .settings import run_on_main_thread
from .package_disabler import PackageDisabler

# How many packages to ignore and unignore in batch to fix the ignored packages bug error
PACKAGES_COUNT_TO_IGNORE_AHEAD = 8

# The minimum time between multiple calls setting the `ignored_packages` setting, without triggering
# the Sublime Text error `It appears a package is trying to ignore itself, causing a loop`
IGNORE_PACKAGE_MINIMUM_WAIT_TIME = 1.7

g_next_packages_to_ignore = []
g_default_ignored_packages = []


def sublime_settings():
    settings_name = "Preferences.sublime-settings"
    return sublime.load_settings( settings_name )


def save_sublime_settings():
    settings_name = "Preferences.sublime-settings"
    sublime.save_settings( settings_name )


def packagesmanager_settings():
    settings_name = "PackagesManager.sublime-settings"
    return sublime.load_settings( settings_name )


def save_packagesmanager_settings():
    settings_name = "PackagesManager.sublime-settings"
    sublime.save_settings( settings_name )


def unique_list_append(a_list, *lists):
    for _list in lists:
        for item in _list:
            if item not in a_list:
                a_list.append( item )


def save_ignored_packages_callback():
    packagesmanager_settings().set( 'next_packages_to_ignore', g_next_packages_to_ignore )
    save_packagesmanager_settings()


def clean_ignored_packages_callback():
    packagesmanager_settings().erase( 'next_packages_to_ignore' )
    save_packagesmanager_settings()


# Disabling a package means changing settings, which can only be done
# in the main thread. We just sleep in this thread for a bit to ensure
# that the packages have been disabled and are ready to be installed.
def run_on_main_thread(callback):
    is_finished = [False]

    def main_thread_call():
        callback()
        is_finished[0] = True

    sublime.set_timeout( main_thread_call, 1 )

    while not is_finished[0]:
        time.sleep( 0.1 )


class IgnoredPackagesBugFixer(object):
    _is_running = False

    def __init__(self, package_list_to_process, ignoring_type="install"):
        assert not IgnoredPackagesBugFixer._is_running, "IgnoredPackagesBugFixer is a Singleton and it is already running! Did you forget to stop it?"
        IgnoredPackagesBugFixer._is_running = True
        self.package_list_to_process = package_list_to_process

        self.package_disabler = PackageDisabler()
        self.uningored_packages_to_flush = 0

        # Value to pass to Package Control PackageDisabler:
        # - "upgrade"
        # - "remove"
        # - "install"
        # - "disable"
        # - "loader"
        self.ignoring_type = ignoring_type

        global g_default_ignored_packages
        global g_next_packages_to_ignore

        g_next_packages_to_ignore = packagesmanager_settings().get( 'next_packages_to_ignore', [] )
        g_default_ignored_packages = self.setup_packages_ignored_list( packages_to_remove=g_next_packages_to_ignore )

    def __iter__(self):
        package_list_to_process = self.package_list_to_process

        for package_name in package_list_to_process:
            self.ignore_next_packages( package_name, package_list_to_process )

            # To here, you can do anything with your package on `package_name` variable, because
            # the functions ignore_next_packages() and accumulative_unignore_user_packages()
            # will take care of everything to ensure they are disabled and reenabled.
            yield package_name
            self.accumulative_unignore_user_packages( package_name )

        # Ensure the list is clean when process finishes
        self.stop()

    def stop(self):
        """
            If the iteration is stopped by a break statement, this must to be called before break.
        """
        self.accumulative_unignore_user_packages( flush_everything=True )

        run_on_main_thread( clean_ignored_packages_callback )
        IgnoredPackagesBugFixer._is_running = False

    def skip_reenable(self, package_name):

        if package_name in g_next_packages_to_ignore:
            g_next_packages_to_ignore.remove( package_name )

        else:
            print( "PackagesManager: The package `%s` is not marked to be unignored." % package_name )

    def ignore_next_packages(self, package_name, packages_list):

        if self.uningored_packages_to_flush < 1:
            global g_next_packages_to_ignore

            last_ignored_packages = packages_list.index( package_name )
            g_next_packages_to_ignore.extend( packages_list[last_ignored_packages : last_ignored_packages+PACKAGES_COUNT_TO_IGNORE_AHEAD+1] )

            # If the package is already on the users' `ignored_packages` settings, it means either that
            # the package was disabled by the user, therefore we must not unignore it later when unignoring them.
            for package_name in list( g_next_packages_to_ignore ):

                if package_name in g_default_ignored_packages:
                    print( "PackagesManager: Warning, the package `%s` could not be ignored because it already ignored." % package_name )
                    g_next_packages_to_ignore.remove( package_name )

            g_next_packages_to_ignore.sort()

            # Let the packages be unloaded by Sublime Text while ensuring anyone is putting them back in
            self.setup_packages_ignored_list( packages_to_add=g_next_packages_to_ignore )

    def accumulative_unignore_user_packages(self, package_name="", flush_everything=False):
        """
            @param flush_everything     set all remaining packages as unignored
        """

        if flush_everything:
            self.setup_packages_ignored_list( packages_to_remove=g_next_packages_to_ignore )
            self.clear_next_ignored_packages()

        else:
            print( "PackagesManager: Adding package to unignore list: %s" % str( package_name ) )
            self.uningored_packages_to_flush += 1

            if self.uningored_packages_to_flush >= len( g_next_packages_to_ignore ):
                self.setup_packages_ignored_list( packages_to_remove=g_next_packages_to_ignore )
                self.clear_next_ignored_packages()

    def clear_next_ignored_packages(self):
        del g_next_packages_to_ignore[:]
        self.uningored_packages_to_flush = 0

    def setup_packages_ignored_list(self, packages_to_add=[], packages_to_remove=[]):
        """
            Flush just a few items each time. Let the packages be unloaded by Sublime Text while
            ensuring anyone is putting them back in.

            Randomly reverting back the `ignored_packages` setting on batch operations
            https://github.com/SublimeTextIssues/Core/issues/2132
        """
        currently_ignored = sublime_settings().get( "ignored_packages", [] )

        packages_to_add.sort()
        packages_to_remove.sort()

        print( "PackagesManager: Currently ignored packages: " + str( currently_ignored ) )
        print( "PackagesManager: Ignoring the packages:      " + str( packages_to_add ) )
        print( "PackagesManager: Unignoring the packages:    " + str( packages_to_remove ) )

        currently_ignored = [package_name for package_name in currently_ignored if package_name not in packages_to_remove]
        unique_list_append( currently_ignored, packages_to_add )
        currently_ignored.sort()

        # This adds them to the `in_process` list on the Package Control.sublime-settings file
        if len( packages_to_add ):
            # We use a functools.partial to generate the on-complete callback in
            # order to bind the current value of the parameters, unlike lambdas.
            closure = functools.partial( self.package_disabler.disable_packages, packages_to_add, self.ignoring_type )

            run_on_main_thread( closure )
            time.sleep( IGNORE_PACKAGE_MINIMUM_WAIT_TIME )

        # This should remove them from the `in_process` list on the Package Control.sublime-settings file
        if len( packages_to_remove ):
            # We use a functools.partial to generate the on-complete callback in
            # order to bind the current value of the parameters, unlike lambdas.
            closure = functools.partial( self.package_disabler.reenable_package, packages_to_remove, self.ignoring_type )

            run_on_main_thread( closure )
            time.sleep( IGNORE_PACKAGE_MINIMUM_WAIT_TIME )

        def main_callback():
            sublime_settings().set( "ignored_packages", currently_ignored )
            save_sublime_settings()

        # Something, somewhere is setting the ignored_packages list back to `["Vintage"]`. Then
        # ensure we override this.
        for interval in range( 0, 27 ):
            run_on_main_thread( main_callback )
            time.sleep( IGNORE_PACKAGE_MINIMUM_WAIT_TIME )

            new_ignored_list = sublime_settings().get( "ignored_packages", [] )
            print( "PackagesManager: Currently ignored packages: " + str( new_ignored_list ) )

            if new_ignored_list:

                if len( new_ignored_list ) == len( currently_ignored ) \
                        and new_ignored_list == currently_ignored:

                    break

        run_on_main_thread( save_ignored_packages_callback )
        return currently_ignored


Simple usage example: automatic_upgrader.py

manager = PackageManager()

for package_name in IgnoredPackagesBugFixer( ["PackageName1", "PackageName2"], "install" ):
    if manager.install_package(package_name):
        print( "Installed package:", package_name )

Advanced usage example: advanced_install_package_command.py

manager = PackageManager()
installed_packages = ["PackageName1"]

def closure(package_name):
    return 'install' if package_name not in installed_packages else 'upgrade'

iterable = IgnoredPackagesBugFixer( ["PackageName1", "PackageName2"], closure )

for package in iterable:
    # Do not reenable if installation deferred until next restart
    if manager.install_package( package ) is None:
        iterable.skip_reenable( package )

For reference, the package FichteFoll seems to be working on is:

  1. https://github.com/guillermooo/sublime-troubleshooting/tree/feature/binary-search

@evandrocoan
Copy link
Author

evandrocoan commented Dec 7, 2018

I was implementing this fix into my fork of Package Control, and I found this commentary:

        # Disabling a package means changing settings, which can only be done
        # in the main thread. We just sleep in this thread for a bit to ensure
        # that the packages have been disabled and are ready to be installed.
        sublime.set_timeout(disable_package_callback, 700)

May be this problem is related from which thread we are issuing the command changing the ignored packages settings.


Updated: wbond said on Discord that this was only required for Sublime Text 2 compatibility because multi-threading was not properly supported.

evandrocoan added a commit to evandrocoan/PackagesManager that referenced this issue Mar 3, 2019
instead of uninstalling them in batches of several packages.
This is a problem because Sublime Text not support several
packages to be added to its `ignored_packages` settings:
sublimehq/sublime_text#2155
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants