dotemacs

My Emacs configuration
git clone git://git.entf.net/dotemacs
Log | Files | Refs | LICENSE

CONTRIBUTING.md (2906B)


      1 # Contributing to Company
      2 
      3 ### Fixes and Improvements
      4 
      5 You're welcome to open a [`pull request`](https://docs.github.com/en/github/collaborating-with-pull-requests)
      6 or send a patch with the changes.  
      7 For non-trivial updates, please clearly describe the problem and the solution.
      8 
      9 If you're looking for *a challenge*, go grab an Issue with the
     10 [`wishlist` label](https://github.com/company-mode/company-mode/issues?q=is%3Aissue+is%3Aopen+label%3Awishlist).
     11 
     12 If you have *a question* on where to start implementing a feature,
     13 ask in a related [Issue](https://github.com/company-mode/company-mode/issues)
     14 or create a new [Discussion](https://github.com/company-mode/company-mode/discussions).
     15 
     16 
     17 ### Documentation
     18 
     19 Help on improving, fixing, and writing documentation is also wanted.  
     20 See these ideas on where to start:
     21 - Add and edit pages in [`Company` Wiki](https://github.com/company-mode/company-mode/wiki).
     22 - Share your findings in [`Discussions`](https://github.com/company-mode/company-mode/discussions/categories/show-and-tell).
     23 - Improve the [user manual](https://github.com/company-mode/company-mode/issues/926).
     24 
     25 
     26 ### Backend Integration
     27 
     28 New backends are rarely accepted for inclusion into `Company` at this stage.
     29 
     30 Our common recommendation for new backends is one of the following:
     31 - Publish a backend to (M)ELPA.
     32 - Create a `*-completion-at-point` function for a call by `completion-at-point-functions`.
     33 
     34 Feel free to [ask](https://github.com/company-mode/company-mode/discussions)
     35 if you're hesitating which approach to choose.
     36 
     37 
     38 ### Guidelines for Third-Party Packages
     39 
     40 This section was born as a result of the question asked in
     41 [Issue #923](https://github.com/company-mode/company-mode/issues/923).
     42 
     43 There are two preferred ways to integrate a third-party package with `Company`.
     44 
     45 1. Use `completion-at-point-functions` and convey extra information through the
     46 `:company-*` additional properties (like e.g. `elisp-completion-at-point` does).
     47 In this scenario, some minor mode can and should call `add-hook`.
     48 
     49 2. Define a `Company` backend (as described in `Commentary` at the top of
     50 `company.el` and in `company-backends` docstring).
     51 Then, in the documentation, describe how you recommend it to be used.
     52 
     53 
     54 Buffer-local values are allowed, but usually not necessary.  
     55 If a backend is added globally, checking a major mode in the prefix function is a must.
     56 
     57 Examples:
     58 - https://github.com/pythonic-emacs/company-anaconda#usage
     59 - https://github.com/vspinu/company-math#activation
     60 
     61 
     62 ### Copyright Assignment
     63 
     64 `Company` is subject to the same [copyright assignment](https://www.fsf.org/licensing/contributor-faq)
     65 policy as `GNU Emacs`.
     66 
     67 Any [legally significant](https://www.gnu.org/prep/maintain/html_node/Legally-Significant.html#Legally-Significant)
     68 contributions can only be merged after the author has completed their paperwork.
     69 Please ask for the request form, and we'll send it to you.