docs/README.md

branch
eric7
changeset 10107
da76865312f1
parent 10031
6d4b46787f30
diff -r d61075b70ab3 -r da76865312f1 docs/README.md
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/README.md	Mon Jul 03 16:31:29 2023 +0200
@@ -0,0 +1,385 @@
+# README for the eric7 IDE
+
+## 0. What is eric7?
+eric7 is a full featured Python editor and IDE, written in Python. It is based
+on the cross platform Qt UI toolkit, integrating the highly flexible Scintilla
+editor control. It is designed to be usable as everyday quick and dirty editor
+as well as being usable as a professional project management tool integrating
+many advanced features Python offers the professional coder. eric7 includes a
+plug-in system, which allows easy extension of the IDE functionality with
+plug-ins downloadable from the net. For more details see
+[https://eric-ide.python-projects.org](https://eric-ide.python-projects.org)
+
+## 1. Installation
+Installing eric7 is a simple process. There are various methods available.
+Please choose the one best suited to your needs and skills. eric7 must be used
+with `Python 3`, `Qt6` and `PyQt6`.
+
+### 1.1 Create a Python virtual environment for eric7
+It is recommended to install eric7 into a Python virtual environment in order
+to keep your Python distribution clean. In order to do that create it by
+entering the following command in a terminal window.
+
+__Linux, macOS__
+
+    python3 -m venv eric7_venv
+
+__Windows__
+
+    python.exe -m venv eric7_venv
+
+Replace `eric7_venv` with the desired path to the directory for the virtual
+environment. All further instructions will assume this environment name.
+
+### 1.2a Variant 1: Installation via the "install.py" script
+This method results in the most complete install on all supported platforms.
+After extracting the eric7 distribution archive just execute the following
+command in a terminal window.
+
+__Linux, macOS__
+
+    ~/eric7_venv/bin/python3 install.py
+
+__Windows__
+
+    eric7_venv\Scripts\python.exe install.py
+
+Change the path to the Python executable appropriately. The installation script
+will check for all prerequisites and will ask for confirmation to install
+them. If the installation process needs tuning type
+`~/eric7_venv/bin/python3 install.py --help` for some help. Using the
+`--yes` option answers yes to all questions automatically.
+
+If you want to uninstall the package just execute the `uninstall.py` script.
+This gets rid of all installed files. In this case please send an email to the
+below mentioned address and tell me your reason. This might give me a hint on
+how to improve eric7.
+
+During the installation process a file containing some information about the
+installation will be created. If this is not desired, the `--no-info`
+command line option may be added to the above given install command.
+
+### 1.2b Variant 2: Installation via the Python Package Index PyPI
+This method is the easiest one but does not create a macOS® Application. Enter
+the following command in a terminal window.
+
+__Linux, macOS__
+
+    ~/eric7_venv/bin/python3 -m pip install --upgrade --prefer-binary eric-ide
+
+__Windows__
+
+    eric7_venv\Scripts\python.exe -m pip install --upgrade --prefer-binary eric-ide
+
+Once the installation is finished navigate to the executable directory of
+the Python virtual environment and execute the `eric7_post_install` script.
+This will create application menu entries on Linux and desktop and start menu
+entries on Windows® platforms.
+
+__Linux__
+
+    ~/eric7_venv/bin/eric7_post_install
+
+__Windows__
+
+    eric7_venv\Scripts\eric7_post_install.exe
+
+### 1.3 Installation of Qt Tools via Qt online installer
+In order to get the most out of eric7 it is recommended to install the Qt Tools
+like `Qt Designer` or `Qt Linguist`. If the above shown installation
+variants are executed, these tools will be installed automatically. Otherwise
+it is recommended to get them from th Qt web site by following these steps.
+
+1. Download the Qt online installer from the Qt download site.
+2. Install Qt by executing the installer.
+3. Configure the path to the Qt tools on the `Qt` configuration page of the
+   eric7 configuration dialog.
+
+## 2. Running
+Just call up eric7_ide, which will start the IDE. Use the "What's This"-help
+(arrow with ?) to get some help. The eric web site provides some
+documents describing certain aspects of eric. To start the unit test module in
+a standalone variant simply call up eric7_testing. This will show the same
+dialog (though with a little bit less functionality) as if started from within
+eric7_ide. The web browser can be started as a standalone program by executing the
+eric7_browser script.
+
+Please note, the first time you start eric7_ide it will recognize, that it
+has not been configured yet, and will show the configuration dialog.
+Please take your time and go through all the configuration items.
+However, every configuration option has a meaningful default value.
+
+## 3. Using eric7_ide on devices with small displays
+eric7_ide can be used on devices with displays smaller than full HD as well
+(i.e. smaller than 1920 x 1080 pixels). If such a small screen is detected,
+the interface using sidebars with just the left sidebar is chosen
+automatically. This cannot be changed. If the auto-detection fails, use of
+the small screen layout can be forced by starting eric7_ide with the
+`--small-screen` command line option. This changes the respective settings
+available via the `Interface ⇨ Interface` configuration page (options `Layout`
+and `Combine left and right sidebar`.
+
+## 4. Running from the sources
+If you want to run eric7_ide from within the source tree you have to execute
+the `compileUiFiles.py` script once after a fresh checkout from the source
+repository or when new dialogs have been added. Thereafter just execute
+the `eric7_ide.py` script.
+
+## 5. Tray starter
+eric7 comes with a little utility called `eric7_tray`. This embeds an icon
+in the system tray, which contains a context menu to start eric7 and all
+it's utilities. Double clicking this icon starts the eric7 IDE.
+
+## 6. Completions/Calltips
+eric7 provides an interface to the QScintilla completion and call-tips
+functionality. QScintilla2 comes with API files for Python and itself. PyQt6
+and PyQt5 contain API files as well. These are installed by default. An API
+file for eric7 is installed in the same place, if installation variant 1 was
+chosen.
+
+In order to use completions and call-tips in eric7 please configure these
+functions in the `Preferences Dialog` on the `Editor -> APIs`, 
+`Editor -> Autocompletion` and `Editor -> Calltips` pages.
+
+In addition to the `QScintilla` based completions and calltips eric7 includes
+a provider that is based on the `jedi` package (installed automatically during
+installation).
+
+Additional completions and call-tip providers are available through the eric7
+plug-in system. See below for details.
+
+Each provider has a configuration page to adjust specific settings.
+
+## 7. Remote Debugger
+In order to enable the remote debugger start eric7, open the preferences
+dialog and configure the settings on the debugger pages.
+
+The remote login must be possible without any further interaction (i.e.
+no password prompt). If the remote setup differs from the local one you
+must configure the Python interpreter and the Debug Client to be used
+in the Preferences dialog. Use the `install-debugclients.py` script
+to install the debug client files and set the entries of the a.m.
+configuration page accordingly. 
+
+To ease the installation process of the debug client, the eric7 sources
+include the script `install-debugclients.py`.
+
+## 8. Passive Debugging
+Passive debugging mode allows the startup of the debugger from outside
+of the IDE. The IDE waits for a connection attempt. For further details
+see the file README-passive-debugging.md.
+
+## 9. Plug-in System
+eric7 contains a plug-in system, that is used to extend eric7's 
+functionality. Some plug-ins are part of eric7. Additional plugins
+are available via the Internet. Please use the built-in plug-in
+repository dialog to get a list of available (official) plug-ins
+and to download them. For more details about the plug-in system
+please see the documentation area.
+
+## 10. Interfaces to additional software packages
+At the moment eric7 provides interfaces to the following software
+packages.
+
+Qt-Designer
+: This is part of the Qt distribution and is used to generate user
+  interfaces.
+
+Qt-Linguist
+: This is part of the Qt distribution and is used to generate
+  translations.
+
+Qt-Assistant
+: This is part of the Qt distribution and may be used to display help
+  files.
+
+Mercurial
+: This is a distributed version control system available from
+  [https://www.mercurial-scm.org/](https://www.mercurial-scm.org/). It is
+  the one used by eric7 itself.
+
+Git
+: This is another (and probably more widely known) distributed version
+  control system. It is available from
+  [https://www.git-scm.com](https://www.git-scm.com).
+
+Subversion
+: This is a version control system available from
+  [https://subversion.apache.org](https://subversion.apache.org). eric7
+  supports two different Subversion interfaces. One is using the svn
+  command line tool, the other is using the PySvn Python interface
+  [https://pysvn.sourceforge.io/](https://pysvn.sourceforge.io/). The
+  selection is done automatically depending on the installed software.
+  The PySvn interface is preferred. This automatism can be overridden an
+  a per project basis using the `User Properties` dialog.
+
+pip
+: This is a tool to install additional Python packages from the Python
+  Package Index (PyPI). It is available from
+[https://pypi.org/project/pip/](https://pypi.org/project/pip/).
+
+conda
+: This is another tool to install additional Python packages and manage
+  virtual environments. It is available from
+  [https://github.com/conda/conda](https://github.com/conda/conda) or
+  [https://pypi.org/project/conda/](https://pypi.org/project/conda/).
+
+virtualenv
+: This is a tool to create Python virtual environments. It is available
+  from [https://pypi.org/project/virtualenv/](https://pypi.org/project/virtualenv/).
+
+: __Note__: Python 3 includes the `venv` package, which can also be used
+  to create Python virtual environments. This package is preferred and
+  is used by eric in various places.
+
+coverage.py
+: This is a tool to check Python code coverage. It is available from
+  [http://www.nedbatchelder.com/code/modules/coverage.html](http://www.nedbatchelder.com/code/modules/coverage.html).
+
+profile
+: This is part of the standard Python distribution and is used to profile
+  Python source code.
+
+black
+: This is a tool to format the source code according to the black formatting
+  rules. More information is available from
+  [https://github.com/psf/black](https://github.com/psf/black).
+
+isort
+: This is a tool to sort the import statements of Python sources. More
+  information is available from
+  [https://pycqa.github.io/isort/](https://pycqa.github.io/isort/)
+
+CycloneDX
+: This is a tool to generate SBOM (Software Bill Of Material) files. For
+  more information see <https://github.com/CycloneDX/cyclonedx-python>
+
+## 11. Internationalization
+eric7 and its tools are prepared to show the UI in different languages, which
+can be configured via the preferences dialog. The `Qt` and `QScintilla`
+translations are searched in the translations directory given in the
+preferences dialog (Qt page). If the translations cannot be found, some part
+of the HMI might show English texts even if you have selected something else.
+If you are missing eric7 translations for your language and are willing to
+volunteer for this work please send me an email naming the country code and
+I will send you the respective Qt-Linguist file.
+
+## 12. Window Layout
+eric7 provides a configurable window layout. The visibility of the various tool
+panes can be configured. The position of the shell pane may be configured as
+well.
+
+## 13. Source code documentation
+eric7 has a built in source code documentation generator, which is
+usable via the command line as well. For further details please see
+the file README-eric7-doc.md.
+
+## 14. Included Tools
+eric7 comes with a long list of tools. These can be started via the eric7
+tray starter or directly via the command line. They are available from within
+the IDE. The included tools are (sorted alphabetically):
+
+eric7_api.py
+: This is the tool to generate API files from Python source code.
+
+eric7_browser.py
+: This is the eric7 web browser. It is a full blown browser based on
+  QtWebEngine, which is based on the Chromium web engine.
+
+eric7_compare.py
+: This tool may be used to compare two files side-by-side. Differences
+  between the files are highlighted by coloring the text.
+
+eric7_configure.py
+: This is the standalone variant of the configuration dialog. It offers
+  most of the configuration options as are available from within eric7.
+
+eric7_diff.py
+: This tool may be used to view the differences between two files. These
+  are shown as a unified or context diff.
+
+eric7_doc.py
+: This is the tool to extract source code documentation from source files
+  and format that as HTML files.
+
+eric7_editor.py
+: This is a stripped down, standalone variant of the editor embedded in the
+  eric7 IDE.
+
+eric7_hexeditor.py
+: This is a standalone hex editor to work with binary files.
+
+eric7_iconeditor.py
+: This is a little tool to create pixel based icons and save them in a
+  pixmap format.
+
+eric7_pip.py
+: This is a standalone variant of the built-in PyPI package management tool.
+
+eric7_plugininstall.py
+: This is a standalone utility to install eric7 plug-ins available on the
+  local machine.
+
+eric7_pluginrepository.py
+: This is a standalone variant of the plug-in repository window. It is used
+  to view the available plug-ins and download them to the local machine.
+
+eric7_pluginuninstall.py
+: This is a standalone utility to uninstall eric7 plug-ins.
+
+eric7_qregularexpression.py
+: This tool may be used to create regular expressions based on QRegularExpression.
+
+eric7_re.py
+: This tool may be used to create Python regular expressions as used with the
+  re module.
+
+eric7_shell.py
+: This is a standalone, graphical Python shell application.
+
+eric7_snap.py
+: This tool may be used to create screenshots of the whole screen, individual
+  windows or selectable areas.
+
+eric7_sqlbrowser.py
+: This is a simple tool to inspect SQL databases. All database products
+  supported by Qt may be inspected. Note, that Qt database drivers may be
+  installed first.
+
+eric7_testing
+: This is a standalone tool to execute existing unit tests using the Python
+  built-in "unittest" package or the external "pytest" suite.
+
+eric7_tray.py
+: This is the tray starter application. See above for some details.
+
+eric7_trpreviewer
+: This tool may be used to preview translations of Qt forms. Forms and
+  language files may be loaded separately. Multiple languages can be loaded
+  and the active language can be switched between the loaded ones.
+
+eric7_uipreviewer
+: This tool is used to preview Qt forms. The display may be switched between
+  the available Qt window styles.
+
+eric7_virtualenv
+: This is a standalone tool to manage Python virtual environments. It is
+  like the integrated pane and offers the same functionality.
+
+## 15. License
+eric7 (and the eric7 tools) is released under the conditions of the GPLv3. See 
+separate license file `LICENSE.GPL3` for more details. Third party software
+included in eric7 is released under their respective license and contained in
+the eric7 distribution for convenience. 
+
+## 16. Bugs and other reports
+Please send bug reports, feature requests or contributions to eric bugs
+address. After the IDE is installed you can use the `Report Bug...`
+entry of the Help menu, which will send an email to
+[eric-bugs@eric-ide.python-projects.org](mailto:eric-bugs@eric-ide.python-projects.org).
+To request a new feature use the `Request Feature...` entry of the Help menu, which
+will send an email to
+[eric-featurerequest@eric-ide.python-projects.org](mailto:eric-featurerequest@eric-ide.python-projects.org).
+
+Alternatively bugs may be reported via the eric7 issue tracker at 
+[https://tracker.die-offenbachs.homelinux.org/](https://tracker.die-offenbachs.homelinux.org/).

eric ide

mercurial