Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/collective/plone.recipe.sublimetext
Recipe for ZC Buildout to make sublime text configuration
https://github.com/collective/plone.recipe.sublimetext
anaconda buildout buildout-recipe jedi plone sublime-text-3 sublimelinter zope
Last synced: about 2 months ago
JSON representation
Recipe for ZC Buildout to make sublime text configuration
- Host: GitHub
- URL: https://github.com/collective/plone.recipe.sublimetext
- Owner: collective
- Created: 2017-04-06T21:46:49.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-02-10T09:09:35.000Z (almost 6 years ago)
- Last Synced: 2024-10-08T16:23:25.616Z (3 months ago)
- Topics: anaconda, buildout, buildout-recipe, jedi, plone, sublime-text-3, sublimelinter, zope
- Language: Python
- Homepage:
- Size: 107 KB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.rst
Awesome Lists containing this project
README
.. image:: https://img.shields.io/pypi/status/plone.recipe.sublimetext.svg
:target: https://pypi.python.org/pypi/plone.recipe.sublimetext/
:alt: Egg Status.. image:: https://img.shields.io/travis/collective/plone.recipe.sublimetext/master.svg
:target: http://travis-ci.org/collective/plone.recipe.sublimetext
:alt: Travis Build Status.. image:: https://img.shields.io/coveralls/collective/plone.recipe.sublimetext/master.svg
:target: https://coveralls.io/r/collective/plone.recipe.sublimetext
:alt: Test Coverage.. image:: https://img.shields.io/pypi/pyversions/plone.recipe.sublimetext.svg
:target: https://pypi.python.org/pypi/plone.recipe.sublimetext/
:alt: Python Versions.. image:: https://img.shields.io/pypi/v/plone.recipe.sublimetext.svg
:target: https://pypi.python.org/pypi/plone.recipe.sublimetext/
:alt: Latest Version.. image:: https://img.shields.io/pypi/l/plone.recipe.sublimetext.svg
:target: https://pypi.python.org/pypi/plone.recipe.sublimetext/
:alt: License.. contents::
Introduction
============``plone.recipe.sublimetext`` is the buildout recipe for `ST3`_ lover who wants python IDE like features while developing python `Buildout`_ based project. This tool will help them to create per project basis sublimetext settings with appropriate paths location assignment. Currently ``plone.recipe.sublimetext`` comes with supporting settings for `Anaconda`_ (the all-in-one package), `Jedi`_, `Sublimelinter`_, `Sublimelinter-Flake8`_, `Sublimelinter-Pylint`_.
A general question may arise that why we will use this tool, whether we can create `ST3`_ project settings easily (we have better knowledge over `ST3`_ configuration)?
Well i completely agree with you, but if you want to get benefited from `Anaconda`_ or `Jedi`_'s python autocompletion feature (basically I am lover of autocompletion), you have to add all eggs links for `Anaconda`_ or `Jedi`_'s paths settings and it is hard to manage eggs links manually if the size of project is big (think about any `Plone`_ powered project), beside `Sublimelinter-Pylint`_ also need list of paths to be added to sys.path to find modules.Installation
============Install ``plone.recipe.sublimetext`` is simple enough, just need to create a section for ``sublimetext`` to your buildout. Before using ``plone.recipe.sublimetext`` make sure `Jedi`_, `Sublimelinter`_, `Sublimelinter-Flake8`_ and/or `Sublimelinter-Pylint`_ plugins are already installed at your `ST3`_. You could follow full [`instruction here
`_] if not your `ST3`_ setup yet. Flake8 linter need `flake8 executable `_ available globally (unless you are going to use local flake8), also it is recommended you install some awsome flake8 plugins (flake8-isort, flake8-coding, pep8-naming, flake8-blind-except, flake8-quotes and more could find in pypi)Example Buildout::
[buildout]
parts += sublimetext[sublimetext]
recipe = plone.recipe.sublimetext
eggs = ${buildout:eggs}
jedi-enabled = True
sublimelinter-enabled = True
sublimelinter-pylint-enabled = TrueAvailable Options
-----------------eggs
Required: YesDefault: None
Your project's list of eggs, those are going to be added in path location for `Jedi`_ and/or `Sublimelinter-Pylint`_ or `Anaconda`_.
overwrite
Required: NoDefault: False
This option indicates whether existing settings should be cleaned first or just updating changes.
This situation may happen, you did create settings file manually with other configuration (those are not managed by ``plone.recipe.sublimetext``) and you want keep those settings intact.python-executable
Required: NoDefault: ``plone.recipe.sublimetext`` will find current python executable path.
The python executable path for current project, if you are using virtual environment then should be that python path. FYI: ${home} and ${project} variable should work.
project-name
Required: NoDefault: if you have a existing `ST3`_ project file(settings file) in project/buildout's root directory, ``plone.recipe.sublimetext`` will choose it as ``project-name``, other than project/buildout directory name will become as ``project-name``
Don't add suffix ``.sublime-project``, when you provide the project name.
jedi-enabled
Required: NoDefault: False
This option is related to enable/disable Sublime `Jedi`_
jedi-use-omelette
Required: NoDefault: False
Use the omelette as basis for jedi autocompletion and go-to-definition. See `collective.recipe.omelette `_
omelette-location
Required: NoDefault: ${buildout:directory}/parts/omelette - the default omelette location.
For use with jedi-use-omelette, but unless the omelette is installed at a custom location, the default should be fine.
sublimelinter-enabled
Required: NoDefault: False
Whether `Sublimelinter`_'s features you want to use or not.
sublimelinter-pylint-enabled
Required: NoDefault: False
If you want to use `Sublimelinter-Pylint`_ or not; ``sublimelinter-enabled`` option will be respected, means if parent option is set as disabled but you enable this option will not work.
sublimelinter-pylint-executable
Required: NoDefault: ''
You could provide buildout specific pylint executable. It is very flexible way to avoid using global pylint.
Example of relative path usecase:
i.) `${buildout:directory}/bin/pylint`
ii.) `$project_path/bin/pylint`
iii.) `./bin/pylint`
iv.) `~/path/bin/pylint`sublimelinter-pylint-args
Required: NoDefault: ''
@see bellow at ``sublimelinter-flake8-args`` section for full detail.
sublimelinter-flake8-enabled
Required: NoDefault: False
Whether you want to use `Sublimelinter-Flake8`_ or not. Like ``sublimelinter-pylint-enabled`` parent option will be respected.
sublimelinter-flake8-executable
Required: NoDefault: ''
Project specific `Flake8`_ executable path, this will give you lots flexibility over using global `Flake8`_ executable, because each project might have separate `Python`_ version. You could use buildout or user's relative directory path and it is very convenient for collboration works where all members' absolute path of flake8 excecutable may not be the same!
Example of relative path usecase:
i.) `${buildout:directory}/bin/flake8`
ii.) `$project_path/bin/flake8`
iii.) `./bin/flake8`
iv.) `~/path/bin/flake8`sublimelinter-flake8-args
Required: NoDefault: ''
It is possible to `provide arguments (options) `_ for ``flake8`` executable project specific.
You have to follow a simple format to provide `multiple arguments aka `_ flake8 options thanks to buildout for making our life easy. Format ``{option name}={option value(optional if the arg boolen type)}`` ``max-line-length=90``, it is remarkable that ``--`` prefix is not required, you can provide multiple arguments separated by ``space`` and/or ``newline``1. sublimelinter-flake8-args = max-line-length=90 --show-source
2. sublimelinter-flake8-args = max-line-length=90 --show-source
output-file=path_to_fileanaconda-enabled
Required: NoDefault: False
This option is related to whether you want to enable `Anaconda`_ the all-in-one python IDE package!
anaconda-linting-enabled
Required: NoDefault: True
If want to other library for liniting (i.e sublimelinter), keep it disabled, other than should be enabled. Like other parent options, it will respect parent (``anaconda-enabled``) option.
anaconda-completion-enabled
Required: NoDefault: True
Anaconda is using `Jedi`_ engine for autocompletion, but if you want to use Sublime-Jedi other than provided by Anaconda, make it disabled.
anaconda-pylint-enabled
Required: NoDefault: False
By default `Anaconda`_ liniting doing validation using PyFlakes, PEP8, PEP257. But you can use Pylint instead of PyFlakes by enabling this option.
anaconda-validate-imports
Required: NoDefault: True
It is always good that you want to see any invalid imports (for example: ``from fake.foo import bar``), but if you don't want this just disabled this option.
anaconda-pep8-ignores
Required: NoDefault: ''
If you want ignore some pep8 checklist (i.e N802 is for pep8 naming). Each ignore should be separated by ``space`` and/or ``newline``.
anaconda-pep257-enabled
Required: NoDefault: False
Indicates whether you want to active ``pep257`` checklist by anaconda.
anaconda-pep257-ignores
Required: NoDefault: ''
If you want ignore some pep8 checklist (i.e N802 is for pep8 naming). Each ignore should be separated by ``space`` and/or ``newline``.
ignore-develop
Required: NoDefault: False
If you don't want development eggs, should go for autocompletion.
ignores
Required: NoDefault: ""
If you want specific eggs should not go for autocompletion.
packages
Required: NoDefault: ""
Location of some python scripts or non standard modules (don't have setup file), you want to be in system path.
Links
=====Code repository:
https://github.com/collective/plone.recipe.sublimetext
Continuous Integration:
https://travis-ci.org/collective/plone.recipe.sublimetext
Issue Tracker:
https://github.com/collective/plone.recipe.sublimetext/issues
Known Issues
============- `Sublimelinter-Flake8`_ might stop working if `flake8-plone-api `_ is installed as until 1.2 version, `flake8-plone-api` don't support SublimeText (linting), see pull request `here `_ . That means upcoming version will support hopefully. It could happen, either you are using global or virtualenv flake8. You can see error in `ST3`_ console::
flake8_plone_api-1.2-py2.7.egg/flake8_plone_api.py", line 16, in run
with open(self.filename) as f:
IOError: [Errno 2] No such file or directory: 'stdin'.. _`ST3`: https://www.sublimetext.com/3
.. _`Buildout`: http://www.buildout.org/en/latest/
.. _`Jedi`: https://github.com/srusskih/SublimeJEDI
.. _`Sublimelinter`: http://sublimelinter.readthedocs.io/en/latest/
.. _`Sublimelinter-Flake8`: https://github.com/SublimeLinter/SublimeLinter-flake8
.. _`Sublimelinter-Pylint`: https://github.com/SublimeLinter/SublimeLinter-pylint
.. _`Plone`: https://plone.org/
.. _`Flake8`: https://pypi.python.org/pypi/flake8
.. _`Python`: https://www.python.org/
.. _`Anaconda`: https://nazrul.me/2017/06/10/make-anaconda-powered-sublimetext-as-powerful-python-ide-for-full-stack-development/