Coder Social home page Coder Social logo

coc-rust-analyzer's Introduction

coc-rust-analyzer

GitHub Sponsors Patreon donate button PayPal donate button

rust-analyzer for Vim/Neovim, works as an extension with coc.nvim.

10

Install

:CocInstall coc-rust-analyzer

remove rust-analyzer config from coc-settings.json if you've set

NOTE: For Apple Silicon users, you shouldn't use Node.js v15, checkout #975 for more.

Notes

It's recommended to add $CARGO_HOME to workspace.ignoredFolders to stop rust-analyzer runs cargo check on sysroot crates:

"workspace.ignoredFolders": [
  "$HOME",
  "$HOME/.cargo/**",
  "$HOME/.rustup/**"
],

Configurations

This extension is configured using a jsonc file. You can open this configuration file using the command :CocConfig, and it is typically located at $HOME/.config/nvim/coc-settings.json.

Configuration Description Default
rust-analyzer.enable Enable coc-rust-analyzer true
rust-analyzer.assist.emitMustUse Whether to insert #[must_use] when generating as_ methods for enum variants. false
rust-analyzer.assist.expressionFillDefault Placeholder expression to use for missing expressions in assists. todo
rust-analyzer.cachePriming.enable Warm up caches on project load. true
rust-analyzer.cachePriming.numThreads How many worker threads to handle priming caches. The default 0 means to pick automatically. 0
rust-analyzer.cargo.autoreload Automatically refresh project info via cargo metadata on Cargo.toml or .cargo/config.toml changes. true
rust-analyzer.cargo.buildScripts.enable Run build scripts (build.rs) for more precise code analysis. true
rust-analyzer.cargo.buildScripts.invocationLocation Specifies the working directory for running build scripts. workspace
rust-analyzer.cargo.buildScripts.invocationStrategy Specifies the invocation strategy to use when running the build scripts command. null
rust-analyzer.cargo.buildScripts.useRustcWrapper Use RUSTC_WRAPPER=rust-analyzer when running build scripts to avoid checking unnecessary things. true
rust-analyzer.cargo.extraEnv Extra environment variables that will be set when running cargo, rustc or other commands within the workspace. Useful for setting RUSTFLAGS. null
rust-analyzer.cargo.features List of features to activate. Set this to "all" to pass --all-features to cargo. ``
rust-analyzer.cargo.noDefaultFeatures Whether to pass --no-default-features to cargo. false
rust-analyzer.cargo.sysroot Relative path to the sysroot, or "discover" to try to automatically find it via "rustc --print sysroot". discover
rust-analyzer.cargo.sysrootSrc Relative path to the sysroot library sources. If left unset, this will default to {cargo.sysroot}/lib/rustlib/src/rust/library. null
rust-analyzer.cargo.target Compilation target override (target triple). null
rust-analyzer.cargo.unsetTest Unsets #[cfg(test)] for the specified crates. core
rust-analyzer.check.allTargets Check all targets and tests (--all-targets). true
rust-analyzer.check.command Cargo command to use for cargo check. check
rust-analyzer.check.extraArgs Extra arguments for cargo check. []
rust-analyzer.check.extraEnv Extra environment variables that will be set when running cargo check. Extends #rust-analyzer.cargo.extraEnv#. {}
rust-analyzer.check.features List of features to activate. Defaults to #rust-analyzer.cargo.features#. Set to "all" to pass --all-features to Cargo. null
rust-analyzer.check.invocationLocation Specifies the working directory for running checks. workspace
rust-analyzer.check.invocationStrategy Specifies the invocation strategy to use when running the checkOnSave command. per_workspace
rust-analyzer.check.noDefaultFeatures Whether to pass --no-default-features to Cargo. Defaults to #rust-analyzer.cargo.noDefaultFeatures#. null
rust-analyzer.check.overrideCommand Override the command rust-analyzer uses instead of cargo check for diagnostics on save. null
rust-analyzer.check.targets Check for specific targets. Defaults to #rust-analyzer.cargo.target# if empty. null
rust-analyzer.checkOnSave Run the check command for diagnostics on save. true
rust-analyzer.completion.autoimport.enable Toggles the additional completions that automatically add imports when completed true
rust-analyzer.completion.autoself.enable Toggles the additional completions that automatically show method calls and field accesses
with self prefixed to them when inside a method. true
rust-analyzer.completion.callable.snippets Whether to add parenthesis and argument snippets when completing function. fill_arguments
rust-analyzer.completion.limit Maximum number of completions to return. If None, the limit is infinite. null
rust-analyzer.completion.postfix.enable Whether to show postfix snippets like dbg, if, not, etc. true
rust-analyzer.completion.privateEditable.enable Enables completions of private items and fields that are defined in the current workspace even if they are not visible at the current position. false
rust-analyzer.completion.snippets.custom Custom completion snippets.
rust-analyzer.debug.runtime Choose which debug runtime to use termdebug
rust-analyzer.debug.vimspector.configuration.name Specify the name of the vimspector configuration name. The following args will be passed to the configuration: Executable and Args (both strings) launch
rust-analyzer.debug.nvimdap.configuration.template Configuration template used to invoked dap.run(conf). The template will be instantiate like thie: $exe will be replaced with executable path, $args will be replaced with arguments. An example template: { name = \"Debug (with args)\", type = \"codelldb\", request = \"launch\", program = $exe, args = $args, cwd = \"${workspaceFolder}\", stopOnEntry = false, terminal = \"integrated\" } ""
rust-analyzer.diagnostics.disabled List of rust-analyzer diagnostics to disable. ``
rust-analyzer.diagnostics.enable Whether to show native rust-analyzer diagnostics. true
rust-analyzer.diagnostics.experimental.enable Whether to show experimental rust-analyzer diagnostics that might have more false positives than usual. false
rust-analyzer.diagnostics.remapPrefix Map of prefixes to be substituted when parsing diagnostic file paths. This should be the reverse mapping of what is passed to rustc as --remap-path-prefix. {}
rust-analyzer.diagnostics.warningsAsHint List of warnings that should be displayed with hint severity. ``
rust-analyzer.diagnostics.warningsAsInfo List of warnings that should be displayed with info severity. ``
rust-analyzer.disableProgressNotifications Disable initialization and workdone progress notifications false
rust-analyzer.files.excludeDirs These directories will be ignored by rust-analyzer. ``
rust-analyzer.files.watcher Controls file watching implementation. client
rust-analyzer.highlightRelated.breakPoints.enable Enables highlighting of related references while the cursor is on break, loop, while, or for keywords. true
rust-analyzer.highlightRelated.exitPoints.enable Enables highlighting of all exit points while the cursor is on any return, ?, fn, or return type arrow (->). true
rust-analyzer.highlightRelated.references.enable Enables highlighting of related references while the cursor is on any identifier. true
rust-analyzer.highlightRelated.yieldPoints.enable Enables highlighting of all break points for a loop or block context while the cursor is on any async or await keywords. true
rust-analyzer.hover.documentation.enable Whether to show documentation on hover. true
rust-analyzer.hover.documentation.keywords.enable Whether to show keyword hover popups. Only applies when #rust-analyzer.hover.documentation.enable# is set. true
rust-analyzer.hover.links.enable Use markdown syntax for links in hover. true
rust-analyzer.imports.granularity.enforce Whether to enforce the import granularity setting for all files. If set to false rust-analyzer will try to keep import styles consistent per file. false
rust-analyzer.imports.granularity.group How imports should be grouped into use statements. crate
rust-analyzer.imports.group.enable Group inserted imports by the https://rust-analyzer.github.io/manual.html#auto-import[following order]. Groups are separated by newlines. true
rust-analyzer.imports.merge.glob Whether to allow import insertion to merge new imports into single path glob imports like use std::fmt::*;. true
rust-analyzer.imports.prefer.no.std Prefer to unconditionally use imports of the core and alloc crate, over the std crate. false
rust-analyzer.imports.prefix The path structure for newly inserted paths to use. plain
rust-analyzer.inlayHints.bindingModeHints.enable Whether to show inlay type hints for binding modes. false
rust-analyzer.inlayHints.chainingHints.enable Whether to show inlay type hints for method chains. true
rust-analyzer.inlayHints.closingBraceHints.enable Whether to show inlay hints after a closing } to indicate what item it belongs to. true
rust-analyzer.inlayHints.closingBraceHints.minLines Minimum number of lines required before the } until the hint is shown (set to 0 or 1 to always show them). 25
rust-analyzer.inlayHints.closureReturnTypeHints.enable Whether to show inlay type hints for return types of closures. never
rust-analyzer.inlayHints.discriminantHints.enable Whether to show enum variant discriminant hints. never
rust-analyzer.inlayHints.expressionAdjustmentHints.enable Whether to show inlay hints for type adjustments. never
rust-analyzer.inlayHints.expressionAdjustmentHints.hideOutsideUnsafe Whether to hide inlay hints for type adjustments outside of unsafe blocks. false
rust-analyzer.inlayHints.expressionAdjustmentHints.mode Whether to show inlay hints as postfix ops (.* instead of *, etc). prefix
rust-analyzer.inlayHints.lifetimeElisionHints.enable Whether to show inlay type hints for elided lifetimes in function signatures. never
rust-analyzer.inlayHints.lifetimeElisionHints.useParameterNames Whether to prefer using parameter names as the name for elided lifetime hints if possible. false
rust-analyzer.inlayHints.maxLength Maximum length for inlay hints. Set to null to have an unlimited length. 25
rust-analyzer.inlayHints.parameterHints.enable Whether to show function parameter name inlay hints at the call site. true
rust-analyzer.inlayHints.reborrowHints.enable Whether to show inlay hints for compiler inserted reborrows. This setting is deprecated in favor of #rust-analyzer.inlayHints.expressionAdjustmentHints.enable#. never
rust-analyzer.inlayHints.renderColons Whether to render leading colons for type hints, and trailing colons for parameter hints. true
rust-analyzer.inlayHints.typeHints.enable Whether to show inlay type hints for variables. true
rust-analyzer.inlayHints.typeHints.hideClosureInitialization Whether to hide inlay type hints for let statements that initialize to a closure. Only applies to closures with blocks, same as #rust-analyzer.inlayHints.closureReturnTypeHints.enable#. false
rust-analyzer.inlayHints.typeHints.hideNamedConstructor Whether to hide inlay type hints for constructors. false
rust-analyzer.joinLines.joinAssignments Join lines merges consecutive declaration and initialization of an assignment. true
rust-analyzer.joinLines.joinElseIf Join lines inserts else between consecutive ifs. true
rust-analyzer.joinLines.removeTrailingComma Join lines removes trailing commas. true
rust-analyzer.joinLines.unwrapTrivialBlock Join lines unwraps trivial blocks. true
rust-analyzer.lens.debug.enable Whether to show Debug lens. Only applies when #rust-analyzer.lens.enable# is set. true
rust-analyzer.lens.enable Whether to show CodeLens in Rust files. true
rust-analyzer.lens.forceCustomCommands Internal config: use custom client-side commands even when the client doesn't set the corresponding capability. true
rust-analyzer.lens.implementations.enable Whether to show Implementations lens. Only applies when #rust-analyzer.lens.enable# is set. true
rust-analyzer.lens.location Where to render annotations. above_name
rust-analyzer.lens.references.adt.enable Whether to show References lens for Struct, Enum, and Union. Only applies when #rust-analyzer.lens.enable# is set. false
rust-analyzer.lens.references.enumVariant.enable Whether to show References lens for Enum Variants. Only applies when #rust-analyzer.lens.enable# is set. false
rust-analyzer.lens.references.method.enable Whether to show Method References lens. Only applies when #rust-analyzer.lens.enable# is set. false
rust-analyzer.lens.references.trait.enable Whether to show References lens for Trait. Only applies when #rust-analyzer.lens.enable# is set. false
rust-analyzer.lens.run.enable Whether to show Run lens. Only applies when #rust-analyzer.lens.enable# is set. true
rust-analyzer.linkedProjects Disable project auto-discovery in favor of explicitly specified set of projects. ``
rust-analyzer.lru.capacity Number of syntax trees rust-analyzer keeps in memory. Defaults to 128. null
rust-analyzer.notifications.cargoTomlNotFound Whether to show can't find Cargo.toml error message. true
rust-analyzer.numThreads How many worker threads in the main loop. The default null means to pick automatically. null
rust-analyzer.procMacro.attributes.enable Expand attribute macros. Requires #rust-analyzer.procMacro.enable# to be set. true
rust-analyzer.procMacro.enable Enable support for procedural macros, implies #rust-analyzer.cargo.buildScripts.enable#. true
rust-analyzer.procMacro.ignored These proc-macros will be ignored when trying to expand them. {}
rust-analyzer.procMacro.server Internal config, path to proc-macro server executable (typically, this is rust-analyzer itself, but we override this in tests). null
rust-analyzer.references.excludeImports Exclude imports from find-all-references. false
rust-analyzer.restartServerOnConfigChange Whether to restart the server automatically when certain settings that require a restart are changed. false
rust-analyzer.runnables.command Command to be executed instead of 'cargo' for runnables. null
rust-analyzer.runnables.extraArgs Additional arguments to be passed to cargo for runnables such as tests or binaries. For example, it may be --release. ``
rust-analyzer.rustc.source Path to the Cargo.toml of the rust compiler workspace, for usage in rustc_private projects, or "discover" to try to automatically find it if the rustc-dev component is installed. null
rust-analyzer.rustfmt.extraArgs Additional arguments to rustfmt. ``
rust-analyzer.rustfmt.overrideCommand Advanced option, fully override the command rust-analyzer uses for formatting. null
rust-analyzer.rustfmt.rangeFormatting.enable Enables the use of rustfmt's unstable range formatting command for the textDocument/rangeFormatting request. The rustfmt option is unstable and only available on a nightly build. false
rust-analyzer.semanticHighlighting.doc.comment.inject.enable Inject additional highlighting into doc comments. true
rust-analyzer.semanticHighlighting.operator.enable Use semantic tokens for operators. true
rust-analyzer.semanticHighlighting.operator.specialization.enable Use specialized semantic tokens for operators. false
rust-analyzer.semanticHighlighting.punctuation.enable Use semantic tokens for punctuations. false
rust-analyzer.semanticHighlighting.punctuation.separate.macro.bang When enabled, rust-analyzer will emit a punctuation semantic token for the ! of macro calls. false
rust-analyzer.semanticHighlighting.punctuation.specialization.enable Use specialized semantic tokens for punctuations. false
rust-analyzer.semanticHighlighting.strings.enable Use semantic tokens for strings. true
rust-analyzer.server.extraEnv Extra environment variables that will be passed to the rust-analyzer executable. Useful for passing e.g. RA_LOG for debugging. null
rust-analyzer.server.path Path to rust-analyzer executable (points to bundled binary by default). If this is set, then "rust-analyzer.updates.channel" setting is not used null
rust-analyzer.signatureInfo.detail Show full signature of the callable. Only shows parameters if disabled. full
rust-analyzer.signatureInfo.documentation.enable Show documentation. true
rust-analyzer.terminal.startinsert Enter insert mode after terminal displayed false
rust-analyzer.trace.server Trace requests to the rust-analyzer off
rust-analyzer.typing.autoClosingAngleBrackets.enable Whether to insert closing angle brackets when typing an opening angle bracket of a generic argument list. false
rust-analyzer.updates.channel Choose "nightly" updates to get the latest features and bug fixes every day. While "stable" releases occur weekly and don't contain cutting-edge features from VSCode proposed APIs stable
rust-analyzer.updates.checkOnStartup Auto-check rust-analyzer updates on startup true
rust-analyzer.updates.prompt Prompt the user before downloading rust-analyzer true
rust-analyzer.workspace.symbol.search.kind Workspace symbol search kind. only_types
rust-analyzer.workspace.symbol.search.limit Limits the number of items returned from a workspace symbol search (Defaults to 128). 128
rust-analyzer.workspace.symbol.search.scope Workspace symbol search scope. workspace

Commands

You can use these commands by :CocCommand XYZ.

Command Description
rust-analyzer.analyzerStatus Show rust-analyzer status
rust-analyzer.debug List available runnables of current file and debug the selected one
rust-analyzer.expandMacro Expand macro recursively
rust-analyzer.explainError Explain the currently hovered error message
rust-analyzer.joinLines Join lines
rust-analyzer.matchingBrace Find matching brace
rust-analyzer.memoryUsage Memory Usage (Clears Database)
rust-analyzer.moveItemUp Move item up
rust-analyzer.moveItemDown Move item down
rust-analyzer.openDocs Open docs under cursor
rust-analyzer.parentModule Locate parent module
rust-analyzer.peekTests Peek related tests
rust-analyzer.reload Restart rust-analyzer server
rust-analyzer.reloadWorkspace Reload workspace
rust-analyzer.run List available runnables of current file and run the selected one
rust-analyzer.serverVersion Show current Rust Analyzer server version
rust-analyzer.ssr Structural Search Replace
rust-analyzer.syntaxTree Show syntax tree
rust-analyzer.testCurrent Test Current
rust-analyzer.upgrade Download latest rust-analyzer from GitHub release
rust-analyzer.viewHir View Hir
rust-analyzer.viewMir View Mir
rust-analyzer.viewFileText View File Text
rust-analyzer.viewCrateGraph View Crate Graph
rust-analyzer.viewFullCrateGraph View Crate Graph (Full)
rust-analyzer.shuffleCrateGraph Shuffle Crate Graph
rust-analyzer.runFlycheck Run flycheck
rust-analyzer.cancelFlycheck Cancel running flychecks
rust-analyzer.clearFlycheck Clear flycheck diagnostics
rust-analyzer.rebuildProcMacros Rebuild proc macros and build scripts
rust-analyzer.interpretFunction Interpret Function

License

MIT


This extension is built with create-coc-extension

coc-rust-analyzer's People

Contributors

fannheyward avatar dependabot-preview[bot] avatar dependabot[bot] avatar gustavokatel avatar medwards avatar timofreiberg avatar darksonn avatar gopherj avatar elkowar avatar typoon avatar j0hn50n133 avatar joshmcguigan avatar lnicola avatar the10thwiz avatar poga avatar seniormars avatar tweksteen avatar trygveaa avatar danielrainer avatar pastalian avatar sify21 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.