Dune is a popular build-tool for OCaml projects, the `dune` package adds:
- Adds syntax highlighting
- Template insertion
- Some testing/compilation functions
These changes adjust the `hy-mode` key-map and make use of `use-package`'s
`:mode` and `:interpreter` settings.
Regarding key-maps, the REPL prefix `s` has been added alongside `e`, since `s`
seems at least as conventional among layers as `e`. Although `e` is used for
Elisp and Clojure, it isn't used for Python or Racket. Scheme appears to use
both, so there's some precedence for the approach used here.
Recent versions of `dumb-jump` have support for jumping to definitions for generic SQL buffers, and
support in Spacemacs requires that we enable these in the `sql` layer.
Two `SPC h SPC` toggles were missing their documentation:
- Nameless
- Minibuffer System Monitor (the symon package)
Now they match the other entries by showing:
- current state
- name (this was only shown before)
- documentation
- key binding (only minibuffer-system-monitor shows a key binding)
The nameless key binding `SPC m T n` only works in emacs-lisp-mode. It's key
binding might need to be described another way.
Adds `SPC m e u` to the Clojure layer to call `cider-undef`, removing an
existing definition from the current namespace.
This provides a Spacemacs style keybinding for the existing Emacs style
keybinding `C-c C-u`
Noticed a new warning during startup saying
that sqlup-mode is using "=c" where "=" is no
prefix key. Noticed that the entire binding
was not carried out in this case.
Therefore I have removed "=" from the binding
but left it on "c" until enough text
manipulations are available, then it should
be moved to "x text manipulation" group instead.
- in addition to that I have removed the line that removes clangd from the
server list since it is not needed in latest lsp-mode since it has smaller
priority than ccls/cquery.
The issue was that `flycheck-package` explicitly
activated `flycheck-pos-tip-mode` however
this package is owned by `syntax checking layer`
and should only be activated by it directly.
This commit removes the workarounds needed on older versions of `dart-mode` library, now that many of the fixes have landed.
This commit also fixes the integration with flycheck, as there is a new function used on the `develop` branch.
Naming the main file `main.nim` is a `C` convention, not a `Nim` convention. In
fact, `Nimble` defaults to naming the main file after the project at
initialization. I will soon add a function that parses the Nimble configuration
for project entry point and compiles that. Until then, this is a solid
compromise between flexibility and reliability. I also added a doc-string to the
function.
For those with MELPA on their mind. It's easier to work when packaging errors
are reported on the fly, and we don't even have `package-lint` integration for
occasional checkups yet.
It adds no unnecessary verbosity as it is only triggered by `Package-Requires`
and `Package-Version` headers.
Add functions equivalent to the custom eval-funtions of the elisp layer to the
common-lisp layer.
The functions are copied from the elisp layer only `eval-last-sexp' was replaced
with its slime equivalent `slime-eval-last-expression'.
Keybindings are chosen as they are in the elisp layer.
Reverted clojure/post-init-parinfer back to a state before the refactor, which
introduced spacemacs|forall-clojure-modes. That macro deals with modes, not
hooks, therefore we can't use it for add-hook.
When executing the main function which requires command line arguments, user can
set `go-run-args` to pass command line arguments to compiled binary.
The example below demonstrates how to pass command line arguments by setting
`go-run-args` as file local variable:
package main
import (
"fmt"
"os"
"strconv"
)
func main() {
//Atoi converts a string to an int
fmt.Println("Arguments:", os.Args)
a, _ := strconv.Atoi(os.Args[1])
b, _ := strconv.Atoi(os.Args[2])
result := sum(a, b)
fmt.Printf("The sum of %d and %d is %d\n", a, b, result)
}
func sum(a, b int) int {
return a + b
}
// Local Variables:
// go-run-args: "10 5"
// End:
Since factor 0.98, `fuel-edit-word` has been removed, since
`fuel-edit-word-at-point` has the same behavior when point is not on a symbol.
Also adjust the jump-handler definition.
factor: choose correct name for the `fuel` package
The package is called `fuel`, not `factor-mode`.
This does not make a difference for the layer itself, since it is using the
`site` pseudo-location, and thus never deals with the package files.
Now, any `post-init-fuel` functions defined somewhere else should work
correctly.
factor-layer: add missing refactor command binding, fix initial modes
When switching the Go layer to use the LSP backend with `golangci-lint`, I
noticed that none of my linter errors were being rendered with my source code.
Digging in further, I eventually learned it was due to `lsp-prefer-flymake`
being set to `nil` and not `:none`.
This change updates the Go layer, when using LSP and golangci-lint, to set
`lsp-prefer-flymake` to `:none`. If this is not set, the golangci-lint errors
will not be reported.
This is an alternative to #12043.
Fixes#11680
Signed-off-by: Tim Heckman <t@heckman.io>
importmangic does not have a diminish character.
Add diminish characters to make the modeline nice(r).
Signed-off-by: Loys Ollivier <loys.ollivier@gmail.com>
Updated documentation for Clojure layer to currently recommended versions of
build tools and `cider-nrepl`, ensuring that connecting to a manually run
Clojure REPL works correctly with the current version of CIDER.
Leiningen version 2.9.0
Boot version 2.8.2
`cider-nrepl` 0.21.1
Moved:
- ("ai" "irc") to both the `erc` and `rcirc` layers. They don't have to be
renamed until the layers are loaded.
- ("ay" "ipython notebook") to the `ipython-notebook` layer.
- ("p$" "projects/shell")
("'" "open shell")
("as" "shells")
to the `shell` layer.
- The commands with keybindings from spacemacs-bootstrap/packages.el to
spacemacs-defaults/keybindings.el.
Removed:
- ("gd" "diff") it seems to be an old group name, there's no `SPC g d` group at
the moment.
- ("Re" "elisp") and ("Rp" "pcre") because they have moved to:
("xr" "regular expressions")
("xre" "elisp")
("xrp" "pcre")
- ("xm" "move") seems to be an old move text group, the current keybindings are
`SPC x J` and `SPC x K` which opens the Move Text Transient State.
- ("b" "persp-buffers") because `SPC b` is also renamed as ("b" "buffers") which
is more general and not persp-mode specific.
As described here: https://github.com/nim-lang/nim-mode/issues/159,
company-capf makes nim-mode unusable. I am replacing it with
company-nimsuggest as it is much more responsive. The reason I elected not to
leave company-capf in as a backup is that it would somehow still make it to the
car of company-backends, regardless of position at assignment, thus becoming the
default completion backend. Given that no functionality is lost this way, and
that nimsuggest is now part of the core nim installation
(https://github.com/nim-lang/nimsuggest), I do not think anything has been
sacrificed.
Rename the spacemacs/c-c++-tags-find-references-at-point and
rtags-find-references-at-point to fix the c-c++-modes key binding:
"g," 'spacemacs/c-c++-tags-find-references-at-point
when c-c++-backend is set to 'rtags.
This changeset reverts some of the changes introduced by
the commit 445f6af93f.
c-c++-lsp-initialization-options:
-> ccls-initialization-options
-> cquery-extra-init-params (cacheFormat set to "msgpack" by default)
c-c++-lsp-args:
-> ccls-args
-> cquery-extra-args
c-c++-lsp-cache-dir:
-> ccls: Appended to initialization-options
-> cquery-cache-dir
<<Amendment 1 21/12/18>>
Removing 'clangd' from list of lsp clients to squash per-file prompt for
language client.
Updated lsp/packages.el to reflect upstream lsp-mode function name changes.
Python layer -- added if guards to prevent anaconda package loading / keyboard
shortcut config when lsp backend selected.
Replaced opt-in use of `spacemacs/lsp-bind-keys-for-mode` function with
keybindings for the lsp minor mode, which should be enabled for all derived
layers.
<<Amendment 1 26/11/2018>>
Added call to (spacemacs//setup-lsp-jump-handler) to lsp-after-open-hook
<<Amendment 2 04/12/2018>>
Migrated to new lsp-mode package API.
Updated c-c++ layer accordingly.
<<Amendment 3 05/12/2018>>
Incorporated PR feedback / corrections from gessen
<<Amendment 4 05/12/2018>>
Incorporated further feedback / corrections from gessen
- I had some issues related to finding the corresponding shortcuts for each of
the commands and I am looking for suggestions for improvements.
- updated the lsp-java readme since the server installation is now automatic. If
you already have jdt server installation, please run lsp-java-update-server
which will download the related dap-mode related stuff.
- Make sure that you have latest melpa versions of lsp-java, lsp-ui and dap-mode
since several issues related to the java integration were fixed lately.
- dap-mode is pretty young package and it is not extensively tested
- dap-hydra which will be used as a transient state for the breakpoints and
debugging, in general, is not synched with the shortcuts in the layer. I will sync
them once there is agreement on the shortcuts configuration. Also, I have not
updated lsp-java README.org with the corresponding shortcuts for the same
reason.
- The debug integration with the python lsp layer will be implemented in
separate PR.
- There will be few more functions that are going to be added to the dap-mode at
some point and they would require shortcuts too:
* suspend/kill thread I guess - "m d t s" "m d t k"?
* watches - "m d l w"
* exception breakpoints - I have to figure out how it will look like on emacs
side.
* goto point "m d H"?
problem:
some layer packages lists have the open and closing parentheses on the same line
as the first and last listed package, but most seem to have them on a separate
lines.
solution:
put the open and close parentheses on separate lines, except for lists with only
a single package, they are written on the same line as the variable name and
parentheses.
fix the lists indentation
Because the setup functions run after local vars are set, setting jump handlers
needs to happen directly. Otherwise setting them only applies to the next
typescript file that is opened, which may or may not even have the same backend.
Also prevents lsp jump handlers from being installed unless the backend is lsp.
- Add clojure-mode refactorings and which-key prefixes in default layer
configuration.
- Improve discoverability of the refactoring features which are not enabled
by default. When clj-refactor is installed, "SPC mr?" runs
cljr-describe-refactoring
- Refactor out repeated dolist clauses into `forall-clojure-modes` macro
which executes body forms for all clojure derived modes, and adds missing
functionality of parinfer, fancify-symbols and evil-cleverparens to
cider-repl-mode and cider-clojure-interaction-mode.
This commit reverts ab34cc2d9d. Setting
company-minimum-prefix-length to 0 causes issues indicated in issue #8222. While
the user is free to set company-minimum-prefix-length to 0 if they please, doing
so affects editing any files that also use web-mode such as jsx files.
Additionally, new users to Spacemacs may be confused by this behavior since no
other layer sets company-minimum-prefix-length to 0.
c-c++-enable-rtags-support has been removed in favor of c-c++-backend. Don't mention it in README
Delete .ccls from c-c++-adopt-subprojects
as in ccls, .ccls-root is recommended for this purpose
Delete the extra parameter :levels 3 from $ccls/inheritance
Finding the immediate bases is usually more desired
The parameters of refs-* in ccls are not in :context
In json-mode tell prettier the content is always to be parsed as json.
Fixes formatting in orgmode `#+BEGIN_SRC json` blocks as prettier
otherwise expects content as javascript.
Fixes: #11343
Document how to use the newly introduced variables to enable sayid and
clj-refactor.
Also update the documentation on adding CIDER-related dependencies. CIDER 0.10
is three years old now, so I think the case where cider middleware isn't
injected automatically is getting rare. However there is still a good use case
for running your Clojure process outside of Emacs/CIDER, meaning you don't get
to benefit from `cider-jack-in`'s magic insjections, so I have focused more on
that case, adding information for clj-refactor's and sayid's middleware, as well
as CIDER's.
Add a prefix for rake and refactor/RuboCop/robe commands. Add test and toggle
prefix for enh-ruby-mode. Use enh-ruby-toggle-block in enh-ruby-mode, instead of
ruby-toggle-block. Remove the prefix in prefixes "ruby/".
The package adds some convenient commands to run elm-test on:
- a file
- a directory
- a projects
It also provides a handy way to toggle between a test and its implementation.
Escape the filename before calling python on the filename in the shell in the
function `spacemacs/python-execute-file` by calling `shell-quote-argument`.
Fix SPC m c c (spacemacs/python-execute-file) and SPC m c C
(spacemacs/python-execute-file-focus), which were causing
the following errors:
save-current-buffer: Symbol’s value as variable is void: python-shell--interpreter
error in process filter: python-shell-comint-end-of-output-p: Wrong type argument: arrayp, nil
error in process filter: Wrong type argument: arrayp, nil
This commit also fixes issue #9070: spacemacs/python-execute-file-focus
does not change focus.
The problem is that spacemacs/python-execute-file-focus invokes
spacemacs/python-execute-file, spacemacs/python-execute-file invokes
inferior-python-mode, and inferior-python-mode uses the variables
python-shell--interpreter and python-shell--interpreter-args, which
the python package declares but does not initialize.
To resolve this problem, this commit initializes both variables to nil.
* layers/+lang/python/config.el: Initialize python-shell--interpreter and
python-shell--interpreter-args to nil.
Right now `alchemist-goto-definition-at-point` is marked as sync, which
sometimes shows message "No jump handler was able to find this symbol." before jumping to correct definition.
[`alchemist-goto--open-definition`](https://github.com/tonini/alchemist.el/blob/master/alchemist-goto.el#L215) calls alchemist server before jumping to definition, which I think justifies marking this as async.
I have very little experience with either Emacs, or Spacemacs, so let me
know if there's anything I can clarify and/or test before this commit gets
merged :)
Fix issue #9271: Setting clojure-enable-fancify-symbols to t causes
the following to the be printed repeatedly in the message buffer:
invalid face reference: t
The problem is that the clojure/fancify-symbols function adds font-lock
keywords with highlight forms containing face-name expressions that
evaluate to the return value of compose-region, which apparently is t;
this value is interpreted as a face name.
The solution to this problem is that the face-name expressions should
evaluate to nil, which will be interpreted as an empty list of properties
instead of a face name.
* layers/+lang/clojure/funcs.el (clojure/fancify-symbols): Define keywords
using face-name expressions that evaluate to nil.
Update key bindings to reflect some changes in Markdown Mode 2.3:
* markdown-exdent-region was renamed to markdown-outdent-region.
* markdown-insert-reference-image (SPC m i I) was folded
into markdown-insert-image (SPC m i i).
* markdown-insert-inline-link-dwim (SPC m i l) and
markdown-insert-reference-link-dwim (SPC m i L)
were replaced by markdown-insert-link (SPC m i l).
* markdown-toggle-markup-hiding (SPC m t m) was added.
* markdown-jump (SPC m RET) was replaced by markdown-do (same).
Note that the documentation listed an incorrect key binding for
markdown-jump; this has been corrected.
* layers/+lang/markdown/packages.el (markdown/init-markdown-mode):
* layers/+lang/markdown/README.org: Update key bindings.
- First remove elixir's layer project prefix, since it was used only for
one binding which would be better suited in tests prefix
- Move `alchemist-project-find-test` to test prefix
- Add `phoenix` prefix and declare bindings
Upstream renamed rtags-cycle-overlays-on-screen to
rtags-cycle-through-diagnostics. As a result, SPC m g Y
causes the following error:
Wrong type argument: commandp, rtags-cycle-overlays-on-screen
This commit updates the corresponding key binding
to the new command name in order to prevent the error.
3011f4e787
* layers/+lang/c-c++/packages.el (c-c++/init-rtags): Change
rtags-cycle-overlays-on-screen to rtags-cycle-through-diagnostics.