RefactoringRope/default_config.py

Tue, 10 Dec 2024 15:49:01 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Dec 2024 15:49:01 +0100
branch
eric7
changeset 426
7592a1c052e8
parent 416
45159308166f
permissions
-rw-r--r--

Updated copyright for 2025.

# # The default ``config.py``
# flake8: noqa


def set_prefs(prefs):
    """This function is called before opening the project"""

    # Specify which files and folders to ignore in the project.
    # Changes to ignored resources are not added to the history and
    # VCSs.  Also they are not returned in `Project.get_files()`.
    # Note that ``?`` and ``*`` match all characters but slashes.
    # '*.pyc': matches 'test.pyc' and 'pkg/test.pyc'
    # 'mod*.pyc': matches 'test/mod1.pyc' but not 'mod/1.pyc'
    # '.svn': matches 'pkg/.svn' and all of its children
    # 'build/*.o': matches 'build/lib.o' but not 'build/sub/lib.o'
    # 'build//*.o': matches 'build/lib.o' and 'build/sub/lib.o'
    prefs["ignored_resources"] = [
        "*.pyc",
        "*~",
        ".ropeproject",
        ".hg",
        ".svn",
        "_svn",
        ".git",
        ".tox",
        ".venv",
        "venv",
        ".mypy_cache",
        ".pytest_cache",
        ".eric7project",
    ]

    # Specifies which files should be considered python files.  It is
    # useful when you have scripts inside your project.  Only files
    # ending with ``.py`` are considered to be python files by
    # default.
    # prefs['python_files'] = ['*.py']

    # Custom source folders:  By default rope searches the project
    # for finding source folders (folders that should be searched
    # for finding modules).  You can add paths to that list.  Note
    # that rope guesses project source folders correctly most of the
    # time; use this if you have any problems.
    # The folders should be relative to project root and use '/' for
    # separating folders regardless of the platform rope is running on.
    # 'src/my_source_folder' for instance.
    # prefs.add('source_folders', 'src')

    # You can extend python path for looking up modules
    # prefs.add('python_path', '~/python/')

    # Should rope save object information or not.
    prefs["save_objectdb"] = False
    prefs["compress_objectdb"] = False

    # If `True`, rope analyzes each module when it is being saved.
    prefs["automatic_soa"] = True
    # The depth of calls to follow in static object analysis
    prefs["soa_followed_calls"] = 0

    # If `False` when running modules or unit tests "dynamic object
    # analysis" is turned off.  This makes them much faster.
    prefs["perform_doa"] = True

    # Rope can check the validity of its object DB when running.
    prefs["validate_objectdb"] = False

    # How many undos to hold?
    prefs["max_history_items"] = 32

    # Shows whether to save history across sessions.
    prefs["save_history"] = True
    prefs["compress_history"] = False

    # Set the number spaces used for indenting.  According to
    # :PEP:`8`, it is best to use 4 spaces.  Since most of rope's
    # unit-tests use 4 spaces it is more reliable, too.
    prefs["indent_size"] = 4

    # Builtin and c-extension modules that are allowed to be imported
    # and inspected by rope.
    prefs["extension_modules"] = []
    # Extension modules definition suitable for PyQt6 development.
    # prefs['extension_modules'] = [
    #     "PyQt6.QtCore", "PyQt6.QtCharts", "PyQt6.QtGui", "PyQt6.QtHelp",
    #     "PyQt6.QtMultimedia", "PyQt6.QtMultimediaWidgets", "PyQt6.QtNetwork",
    #     "PyQt6.QtPrintSupport", "PyQt6.QtSerialPort", "PyQt6.QtSql",
    #     "PyQt6.QtSvg", "PyQt6.QtSvgWidgets", "PyQt6.QtWebChannel",
    #     "PyQt6.QtWebEngineCore", "PyQt6.QtWebEngineWidgets",
    #     "PyQt6.QtWebSockets", "PyQt6.QtWidgets", "PyQt6.QtXml", "PyQt6.Qsci",
    #     "PyQt6.QtBluetooth", "PyQt6.QtDBus", "PyQt6.QtNfc", "PyQt6.QtOpenGL",
    #     "PyQt6.QtOpenGLWidgets", "PyQt6.QtRemoteObjects",
    # ]

    # Add all standard c-extensions to extension_modules list.
    prefs["import_dynload_stdmods"] = True

    # If `True` modules with syntax errors are considered to be empty.
    # The default value is `False`; When `False` syntax errors raise
    # `rope.base.exceptions.ModuleSyntaxError` exception.
    prefs["ignore_syntax_errors"] = False

    # If `True`, rope ignores unresolvable imports.  Otherwise, they
    # appear in the importing namespace.
    prefs["ignore_bad_imports"] = False

    # If `True`, rope will insert new module imports as
    # `from <package> import <module>` by default.
    prefs["prefer_module_from_imports"] = False

    # If `True`, rope will transform a comma list of imports into
    # multiple separate import statements when organizing
    # imports.
    prefs["split_imports"] = False

    # If `True`, rope will remove all top-level import statements and
    # reinsert them at the top of the module when making changes.
    prefs["pull_imports_to_top"] = True

    # If `True`, rope will sort imports alphabetically by module name instead
    # of alphabetically by import statement, with from imports after normal
    # imports.
    prefs["sort_imports_alphabetically"] = False

    # Location of implementation of
    # rope.base.oi.type_hinting.interfaces.ITypeHintingFactory In general
    # case, you don't have to change this value, unless you're an rope expert.
    # Change this value to inject you own implementations of interfaces
    # listed in module rope.base.oi.type_hinting.providers.interfaces
    # For example, you can add you own providers for Django Models, or disable
    # the search type-hinting in a class hierarchy, etc.
    prefs["type_hinting_factory"] = (
        "rope.base.oi.type_hinting.factory.default_type_hinting_factory"
    )

    # Minimum python version to target
    prefs["py_version"] = None


def project_opened(project):
    """This function is called after opening the project"""
    # Do whatever you like here!

eric ide

mercurial