Conda layer needed some additions to be spacemacs
conform. In detail I did:
* Add missing features block and TOC declaration in README
* Change bindings to extent the existing python bindings
rather than adding new general bindings.
* Make conda layer require python layer
There was a edge case with the declaration of the `lsp` layer in `layers.el`
files.
The `hy` layer depends on the `python` layer which in turn depends on the `lsp`
layer if and only if the `python-backend` layer variable is set to `lsp`.
When the `hy` layer was declared first then it declares the `python` layer
without its layer variables, thus the `lsp` layer was not declared because the
`python-backend` variable was not set.
The fix is to gather all the layer dependencies and resolve them only after all
the used layers have been declared.
* new function `configuration-layer/declare-layer-dependencies`
* replace all calls to `configuration-layer/declare-layer` by the new function
except for distribution layers (we declare layer dependencies right away in
distribution layers)
* use local-vars-hook coupled to setup function for dap
* define new private layer variable `spacemacs--dap-supported-modes` to
configure key bindings. This allows to move the key bindings definition from
`funcs.el` to `packages.el`
* remove duplication of DAP key bindings in READMEs by pointing to the dap layer
documentation
* alphabetically sort package configuration
The dart layer requires the official LSP server as the
emacs mode alternative is not longer properly maintained.
Therefore I have added some more description of how to
install the server properly and let the layer load
the LSP layer automatically.
In addition I have removed the unsupported variable
`dart-server-enable-analysis-server` from the
documentation.
See https://github.com/bradyt/dart-mode/wiki/LSP for
details.
While getting the dart-server major mode key bindings to work.
Everything was moved from the `dart/init-dart-mode` function,
to the `dart/init-dart-server` function.
This revealed that an empty `dart/init-dart-mode` section causes
`M-x revert-buffer`
to switch the dart buffer to `fundamental-mode`.
The fix was to load `dart-mode` from the `dart/init-dart-mode`
function. And add `:after dart-mode` to the
`dart/init-dart-server` function.
dart-mode has been split into two packages:
- dart-mode, Provides basic syntax highlighting and indentation.
- dart-server, Factors out the features from dart-mode.el that relied on
external executables, thus improving availability, reliability, testing and
development of dart-mode.el.
When send form/region/buffer to repl without focus - repl buffer is
not scrolling and result not visible.
Added scrolling to the end of the repl-buffer after eval.
On systems where IPython executable path contains whitespace
(e.g, if IPython is under Local Appdata and your Windows username has
whitespace), the shell command was invalid, quoting the executable is required.
"pu" for lsp backends called a lsp-java function which has
been deactivated in the `lsp-java` package. Replaced it with
the closest match from the same package, updating the
project settings instead.
- declare lsp layer dependency if elixir-backind is lsp
- "C-j" now properly indents line
- add toggle breakpoint for elixir-mode
update CHANGELOG.develop
- Consolidate pre-requisites
- Revise document structure
- Clarify setup instructions
- Link key bindings to their supporting tools
- Remove ancient notes on go-oracle
- Fix typos
- Style fixes
- Apply suggestions from code review by @duianto
Thanks to @duianto for the comprehensive review!
Co-Authored-By: duianto <otnaiud@gmail.com>
gometalinter¹ was deprecated on 2019-02-28, in favor of the more advanced
golangci-lint.
. Drop references to gometalinter from README.org
. Update reference to available meta-linter (golangci-lint) in LAYERS.org
. Add attribution in CHANGELOG.develop
¹: https://github.com/alecthomas/gometalinter
Previously, if a user set `python-backend` to `'lsp`, it would not do anything
unless the user also manually added the `lsp` layer to the spacemacs `init.el`
file. This commit updates the `python` layer to correctly add the dependency
when needed, like the `c-c++` layer does.
Enhancement to Clojure layer documentation for the clj-kondo linter added via
pul request #12611
Moved instructions to install section as clj-kondo and squiqgly can be added as
Clojure layer variables, just like clj-refactor and sayid.
Changed the install instructions to make them specific and to use clojure layer
variables, which is consistent with other Clojure layer options.
Elaborated on the install instructions to clarify requirements, constraints and
recommended linting tool.
Added credits to the changelog.
`spacemacs/python-format-buffer` was bound to '='.
Subsequently clobbered by lsp layer declaration of '=' as prefix with subsidiary
keybindings.
Resolved by moving `spacemacs/python-format-buffer` binding to '=='.
Updated README accordingly.
Opportunistically added 'mspyls' dir to .gitignore
this PR does two things for js-related layers:
(i) add option to disable lsp linter
javascript-lsp-linter for javascript and react layers
typescript-lsp-linter for typescript layer
when the value is t, lsp linter will be used in the layer
when nil, let flycheck pick up the best linters available such
as eslint
(ii) when syntax-checking(flycheck) layer is installed, then set
next-error-function value in react and javascript layers to nil, so that
spacemacs next-error, previous-error work A desciption of this issue can be
found at https://github.com/syl20bnr/spacemacs/issues/8078
Co-Authored-By: duianto <otnaiud@gmail.com>
Update the existing `SPC m g g` keybinding to use the command
`spacemacs/clj-find-var`. This makes finding a function definition a much
better experience as you dont have to have the REPL running to find a
definition, but when it is you can use a CIDER specific function.
`spacemacs/clj-find-var` is a wrapper that calls `cider-find-var` if the REPL is
running, otherwise it uses `dump-jump-go`.
Wrapper added in #9792
Latest CIDER release uses the following commands for starting the REPL from
within Emacs
`cider-jack-in-clj` to start a Clojure REPL
`cider-jack-in-clj&cljs` to start a Clojure and ClojureScript REPL
`cider-jack-in-cljs` to start a ClojureScript repl
The older aliases are deprecated and are being removed in the latest beta
release of CIDER
`cider-jack-in`
`cider-jack-in-clojurescript`
Keybindings for these jack-in commands have been updated and as there are three
options they have been moved under the repl > jack-in
The top level of the Clojure mode menu has the existing keybindings updated to
use the new commands. A third top-level keybinding `&` has been added for
`cider-jack-in-clj&cljs`
Although the Clojure repl utils (clojure.repl) are including in the user
namespace in Clojure projects, they are not available in your application
namespace.
The existing CIDER function cider-repl-require-repl-utils adds the Clojure
repl utils into the current namespace, so you can use functions such as doc
and source.
This is often a source of confusion for those new to Clojure / CIDER.
Although the Clojure repl utils (clojure.repl) are including in the user
namespace in Clojure projects, they are not available in your application
namespace.
The existing CIDER function cider-repl-require-repl-utils adds the Clojure
repl utils into the current namespace, so you can use functions such as doc
and source.
This is often a source of confusion for those new to Clojure / CIDER.
* It's now agda2-auto-maybe-all. If you are not currently in a hole
it tries to `auto` all holes by default.
* Find and set an agda-version variable, to keep compatibility with
previous agda versions.
This moves the point and content of the window close to where you were
before you ran perltidy. Of course if perltidy adds or removes a
significant amount of characters / lines as part of tidying, the point
will be moved by that amount. However in practice this I've found this
to be close enough.
Interrupt longer running evaluations without having to kill or reset the REPL
connection.
Placed in the evaluate section, as it is specific to the currently running
evaluation.
This change fixes a syntax mistake in the use-package declaration of
ruby-test-mode that causes the package to be loaded immediately, instead of
deferring the load until the first ruby file is visited, as is intended.
Add relevant keybindings and documentation, including a setting
`js2-include-node-externs` as a configuration variable for those that intend to
use `Spacemacs` for node projects, as it currently seems to be mostly aimed at
pure JS (https://github.com/syl20bnr/spacemacs/issues/483).
<<26/04/2019>>
Incorporated feedback from robbyoconnor and yyoncho.
Rebased.
<<08/04/2019>>
Rebased on develop tip
<<17/04/2019>>
Rebased
<<02/06/2019>>
Rebased. Incorporated feedback from duianto.
The key binding was changed in this commit:
javascript: change key binding for repl live eval toggle
8bc9060af8
This updates the documentation.
From: SPC m s a
To: SPC m T l
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>