rename ra_ide_api -> ra_ide

This commit is contained in:
Aleksey Kladov 2019-11-27 21:32:33 +03:00
parent d9a36a736b
commit 757e593b25
81 changed files with 48 additions and 48 deletions

8
Cargo.lock generated
View file

@ -906,7 +906,7 @@ dependencies = [
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
"ra_db 0.1.0", "ra_db 0.1.0",
"ra_hir 0.1.0", "ra_hir 0.1.0",
"ra_ide_api 0.1.0", "ra_ide 0.1.0",
"ra_project_model 0.1.0", "ra_project_model 0.1.0",
"ra_vfs 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "ra_vfs 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"ra_vfs_glob 0.1.0", "ra_vfs_glob 0.1.0",
@ -932,7 +932,7 @@ dependencies = [
"ra_batch 0.1.0", "ra_batch 0.1.0",
"ra_db 0.1.0", "ra_db 0.1.0",
"ra_hir 0.1.0", "ra_hir 0.1.0",
"ra_ide_api 0.1.0", "ra_ide 0.1.0",
"ra_prof 0.1.0", "ra_prof 0.1.0",
"ra_syntax 0.1.0", "ra_syntax 0.1.0",
] ]
@ -1027,7 +1027,7 @@ dependencies = [
] ]
[[package]] [[package]]
name = "ra_ide_api" name = "ra_ide"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"format-buf 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "format-buf 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1065,7 +1065,7 @@ dependencies = [
"lsp-server 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "lsp-server 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lsp-types 0.61.0 (registry+https://github.com/rust-lang/crates.io-index)", "lsp-types 0.61.0 (registry+https://github.com/rust-lang/crates.io-index)",
"parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ra_ide_api 0.1.0", "ra_ide 0.1.0",
"ra_prof 0.1.0", "ra_prof 0.1.0",
"ra_project_model 0.1.0", "ra_project_model 0.1.0",
"ra_syntax 0.1.0", "ra_syntax 0.1.0",

View file

@ -56,7 +56,7 @@ https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frls-2.2E0
## Quick Links ## Quick Links
* API docs: https://rust-analyzer.github.io/rust-analyzer/ra_ide_api/ * API docs: https://rust-analyzer.github.io/rust-analyzer/ra_ide/
## License ## License

View file

@ -15,6 +15,6 @@ crossbeam-channel = "0.4.0"
ra_vfs = "0.5.0" ra_vfs = "0.5.0"
ra_vfs_glob = { path = "../ra_vfs_glob" } ra_vfs_glob = { path = "../ra_vfs_glob" }
ra_db = { path = "../ra_db" } ra_db = { path = "../ra_db" }
ra_ide_api = { path = "../ra_ide_api" } ra_ide = { path = "../ra_ide" }
ra_hir = { path = "../ra_hir" } ra_hir = { path = "../ra_hir" }
ra_project_model = { path = "../ra_project_model" } ra_project_model = { path = "../ra_project_model" }

View file

@ -6,7 +6,7 @@ use rustc_hash::FxHashMap;
use crossbeam_channel::{unbounded, Receiver}; use crossbeam_channel::{unbounded, Receiver};
use ra_db::{CrateGraph, FileId, SourceRootId}; use ra_db::{CrateGraph, FileId, SourceRootId};
use ra_ide_api::{AnalysisChange, AnalysisHost, FeatureFlags}; use ra_ide::{AnalysisChange, AnalysisHost, FeatureFlags};
use ra_project_model::{get_rustc_cfg_options, PackageRoot, ProjectWorkspace}; use ra_project_model::{get_rustc_cfg_options, PackageRoot, ProjectWorkspace};
use ra_vfs::{RootEntry, Vfs, VfsChange, VfsTask, Watch}; use ra_vfs::{RootEntry, Vfs, VfsChange, VfsTask, Watch};
use ra_vfs_glob::RustPackageFilterBuilder; use ra_vfs_glob::RustPackageFilterBuilder;

View file

@ -10,7 +10,7 @@ pico-args = "0.3.0"
flexi_logger = "0.14.0" flexi_logger = "0.14.0"
ra_syntax = { path = "../ra_syntax" } ra_syntax = { path = "../ra_syntax" }
ra_ide_api = { path = "../ra_ide_api" } ra_ide = { path = "../ra_ide" }
ra_batch = { path = "../ra_batch" } ra_batch = { path = "../ra_batch" }
ra_hir = { path = "../ra_hir" } ra_hir = { path = "../ra_hir" }
ra_db = { path = "../ra_db" } ra_db = { path = "../ra_db" }

View file

@ -10,7 +10,7 @@ use ra_db::{
salsa::{Database, Durability}, salsa::{Database, Durability},
FileId, SourceDatabaseExt, FileId, SourceDatabaseExt,
}; };
use ra_ide_api::{Analysis, AnalysisChange, AnalysisHost, FilePosition, LineCol}; use ra_ide::{Analysis, AnalysisChange, AnalysisHost, FilePosition, LineCol};
use crate::Result; use crate::Result;

View file

@ -9,7 +9,7 @@ use std::{error::Error, fmt::Write, io::Read};
use flexi_logger::Logger; use flexi_logger::Logger;
use pico_args::Arguments; use pico_args::Arguments;
use ra_ide_api::{file_structure, Analysis}; use ra_ide::{file_structure, Analysis};
use ra_prof::profile; use ra_prof::profile;
use ra_syntax::{AstNode, SourceFile}; use ra_syntax::{AstNode, SourceFile};

View file

@ -1,4 +1,4 @@
//! ra_db defines basic database traits. The concrete DB is defined by ra_ide_api. //! ra_db defines basic database traits. The concrete DB is defined by ra_ide.
mod cancellation; mod cancellation;
mod input; mod input;
pub mod fixture; pub mod fixture;

View file

@ -1,6 +1,6 @@
[package] [package]
edition = "2018" edition = "2018"
name = "ra_ide_api" name = "ra_ide"
version = "0.1.0" version = "0.1.0"
authors = ["rust-analyzer developers"] authors = ["rust-analyzer developers"]
@ -32,7 +32,7 @@ ra_prof = { path = "../ra_prof" }
test_utils = { path = "../test_utils" } test_utils = { path = "../test_utils" }
ra_assists = { path = "../ra_assists" } ra_assists = { path = "../ra_assists" }
# ra_ide_api should depend only on the top-level `hir` package. if you need # ra_ide should depend only on the top-level `hir` package. if you need
# something from some `hir_xxx` subpackage, reexport the API via `hir`. # something from some `hir_xxx` subpackage, reexport the API via `hir`.
hir = { path = "../ra_hir", package = "ra_hir" } hir = { path = "../ra_hir", package = "ra_hir" }

View file

@ -1,4 +1,4 @@
//! ra_ide_api crate provides "ide-centric" APIs for the rust-analyzer. That is, //! ra_ide crate provides "ide-centric" APIs for the rust-analyzer. That is,
//! it generally operates with files and text ranges, and returns results as //! it generally operates with files and text ranges, and returns results as
//! Strings, suitable for displaying to the human. //! Strings, suitable for displaying to the human.
//! //!

View file

@ -306,7 +306,7 @@ fn main() {
"# "#
.trim(), .trim(),
); );
let dst_file = project_dir().join("crates/ra_ide_api/src/snapshots/highlighting.html"); let dst_file = project_dir().join("crates/ra_ide/src/snapshots/highlighting.html");
let actual_html = &analysis.highlight_as_html(file_id, false).unwrap(); let actual_html = &analysis.highlight_as_html(file_id, false).unwrap();
let expected_html = &read_text(&dst_file); let expected_html = &read_text(&dst_file);
std::fs::write(dst_file, &actual_html).unwrap(); std::fs::write(dst_file, &actual_html).unwrap();
@ -333,7 +333,7 @@ fn bar() {
.trim(), .trim(),
); );
let dst_file = let dst_file =
project_dir().join("crates/ra_ide_api/src/snapshots/rainbow_highlighting.html"); project_dir().join("crates/ra_ide/src/snapshots/rainbow_highlighting.html");
let actual_html = &analysis.highlight_as_html(file_id, true).unwrap(); let actual_html = &analysis.highlight_as_html(file_id, true).unwrap();
let expected_html = &read_text(&dst_file); let expected_html = &read_text(&dst_file);
std::fs::write(dst_file, &actual_html).unwrap(); std::fs::write(dst_file, &actual_html).unwrap();

View file

@ -22,7 +22,7 @@ jod-thread = "0.1.0"
ra_vfs = "0.5.0" ra_vfs = "0.5.0"
ra_syntax = { path = "../ra_syntax" } ra_syntax = { path = "../ra_syntax" }
ra_text_edit = { path = "../ra_text_edit" } ra_text_edit = { path = "../ra_text_edit" }
ra_ide_api = { path = "../ra_ide_api" } ra_ide = { path = "../ra_ide" }
lsp-server = "0.3.0" lsp-server = "0.3.0"
ra_project_model = { path = "../ra_project_model" } ra_project_model = { path = "../ra_project_model" }
ra_prof = { path = "../ra_prof" } ra_prof = { path = "../ra_prof" }

View file

@ -1,6 +1,6 @@
//! FIXME: write short doc here //! FIXME: write short doc here
use ra_ide_api::{FileId, RunnableKind}; use ra_ide::{FileId, RunnableKind};
use ra_project_model::{self, ProjectWorkspace, TargetKind}; use ra_project_model::{self, ProjectWorkspace, TargetKind};
use crate::{world::WorldSnapshot, Result}; use crate::{world::WorldSnapshot, Result};

View file

@ -6,7 +6,7 @@ use lsp_types::{
SymbolKind, TextDocumentEdit, TextDocumentIdentifier, TextDocumentItem, SymbolKind, TextDocumentEdit, TextDocumentIdentifier, TextDocumentItem,
TextDocumentPositionParams, Url, VersionedTextDocumentIdentifier, WorkspaceEdit, TextDocumentPositionParams, Url, VersionedTextDocumentIdentifier, WorkspaceEdit,
}; };
use ra_ide_api::{ use ra_ide::{
translate_offset_with_edit, CompletionItem, CompletionItemKind, FileId, FilePosition, translate_offset_with_edit, CompletionItem, CompletionItemKind, FileId, FilePosition,
FileRange, FileSystemEdit, Fold, FoldKind, InsertTextFormat, LineCol, LineIndex, FileRange, FileSystemEdit, Fold, FoldKind, InsertTextFormat, LineCol, LineIndex,
NavigationTarget, RangeInfo, Severity, SourceChange, SourceFileEdit, NavigationTarget, RangeInfo, Severity, SourceChange, SourceFileEdit,
@ -173,7 +173,7 @@ impl ConvWith<&LineIndex> for Range {
} }
} }
impl Conv for ra_ide_api::Documentation { impl Conv for ra_ide::Documentation {
type Output = lsp_types::Documentation; type Output = lsp_types::Documentation;
fn conv(self) -> Documentation { fn conv(self) -> Documentation {
Documentation::MarkupContent(MarkupContent { Documentation::MarkupContent(MarkupContent {
@ -183,7 +183,7 @@ impl Conv for ra_ide_api::Documentation {
} }
} }
impl Conv for ra_ide_api::FunctionSignature { impl Conv for ra_ide::FunctionSignature {
type Output = lsp_types::SignatureInformation; type Output = lsp_types::SignatureInformation;
fn conv(self) -> Self::Output { fn conv(self) -> Self::Output {
use lsp_types::{ParameterInformation, ParameterLabel, SignatureInformation}; use lsp_types::{ParameterInformation, ParameterLabel, SignatureInformation};

View file

@ -1,6 +1,6 @@
//! Implementation of the LSP for rust-analyzer. //! Implementation of the LSP for rust-analyzer.
//! //!
//! This crate takes Rust-specific analysis results from ra_ide_api and //! This crate takes Rust-specific analysis results from ra_ide and
//! translates into LSP types. //! translates into LSP types.
//! //!
//! It also is the root of all state. `world` module defines the bulk of the //! It also is the root of all state. `world` module defines the bulk of the

View file

@ -9,7 +9,7 @@ use std::{error::Error, fmt, panic, path::PathBuf, sync::Arc, time::Instant};
use crossbeam_channel::{select, unbounded, RecvError, Sender}; use crossbeam_channel::{select, unbounded, RecvError, Sender};
use lsp_server::{Connection, ErrorCode, Message, Notification, Request, RequestId, Response}; use lsp_server::{Connection, ErrorCode, Message, Notification, Request, RequestId, Response};
use lsp_types::{ClientCapabilities, NumberOrString}; use lsp_types::{ClientCapabilities, NumberOrString};
use ra_ide_api::{Canceled, FeatureFlags, FileId, LibraryData, SourceRootId}; use ra_ide::{Canceled, FeatureFlags, FileId, LibraryData, SourceRootId};
use ra_prof::profile; use ra_prof::profile;
use ra_vfs::{VfsTask, Watch}; use ra_vfs::{VfsTask, Watch};
use relative_path::RelativePathBuf; use relative_path::RelativePathBuf;

View file

@ -9,7 +9,7 @@ use lsp_types::{
Hover, HoverContents, Location, MarkupContent, MarkupKind, Position, PrepareRenameResponse, Hover, HoverContents, Location, MarkupContent, MarkupKind, Position, PrepareRenameResponse,
Range, RenameParams, SymbolInformation, TextDocumentIdentifier, TextEdit, WorkspaceEdit, Range, RenameParams, SymbolInformation, TextDocumentIdentifier, TextEdit, WorkspaceEdit,
}; };
use ra_ide_api::{ use ra_ide::{
AssistId, FileId, FilePosition, FileRange, Query, Runnable, RunnableKind, SearchScope, AssistId, FileId, FilePosition, FileRange, Query, Runnable, RunnableKind, SearchScope,
}; };
use ra_prof::profile; use ra_prof::profile;
@ -162,7 +162,7 @@ pub fn handle_on_type_formatting(
let line_index = world.analysis().file_line_index(position.file_id)?; let line_index = world.analysis().file_line_index(position.file_id)?;
let line_endings = world.file_line_endings(position.file_id); let line_endings = world.file_line_endings(position.file_id);
// in `ra_ide_api`, the `on_type` invariant is that // in `ra_ide`, the `on_type` invariant is that
// `text.char_at(position) == typed_char`. // `text.char_at(position) == typed_char`.
position.offset = position.offset - TextUnit::of_char('.'); position.offset = position.offset - TextUnit::of_char('.');
let char_typed = params.ch.chars().next().unwrap_or('\0'); let char_typed = params.ch.chars().next().unwrap_or('\0');
@ -894,7 +894,7 @@ pub fn handle_inlay_hints(
label: api_type.label.to_string(), label: api_type.label.to_string(),
range: api_type.range.conv_with(&line_index), range: api_type.range.conv_with(&line_index),
kind: match api_type.kind { kind: match api_type.kind {
ra_ide_api::InlayKind::TypeHint => InlayKind::TypeHint, ra_ide::InlayKind::TypeHint => InlayKind::TypeHint,
}, },
}) })
.collect()) .collect())

View file

@ -1,6 +1,6 @@
//! FIXME: write short doc here //! FIXME: write short doc here
use ra_ide_api::FileId; use ra_ide::FileId;
use rustc_hash::FxHashSet; use rustc_hash::FxHashSet;
#[derive(Default, Debug)] #[derive(Default, Debug)]

View file

@ -9,7 +9,7 @@ use crossbeam_channel::{unbounded, Receiver};
use lsp_server::ErrorCode; use lsp_server::ErrorCode;
use lsp_types::Url; use lsp_types::Url;
use parking_lot::RwLock; use parking_lot::RwLock;
use ra_ide_api::{ use ra_ide::{
Analysis, AnalysisChange, AnalysisHost, CrateGraph, FeatureFlags, FileId, LibraryData, Analysis, AnalysisChange, AnalysisHost, CrateGraph, FeatureFlags, FileId, LibraryData,
SourceRootId, SourceRootId,
}; };

View file

@ -14,7 +14,7 @@ To learn more about how rust-analyzer works, see
We also publish rustdoc docs to pages: We also publish rustdoc docs to pages:
https://rust-analyzer.github.io/rust-analyzer/ra_ide_api/ https://rust-analyzer.github.io/rust-analyzer/ra_ide/
Various organizational and process issues are discussed in this document. Various organizational and process issues are discussed in this document.

View file

@ -106,7 +106,7 @@ guessing a HIR for a particular source position.
Underneath, HIR works on top of salsa, using a `HirDatabase` trait. Underneath, HIR works on top of salsa, using a `HirDatabase` trait.
### `crates/ra_ide_api` ### `crates/ra_ide`
A stateful library for analyzing many Rust files as they change. `AnalysisHost` A stateful library for analyzing many Rust files as they change. `AnalysisHost`
is a mutable entity (clojure's atom) which holds the current state, incorporates is a mutable entity (clojure's atom) which holds the current state, incorporates
@ -124,11 +124,11 @@ offsets and strings as output. This works on top of rich code model powered by
### `crates/ra_lsp_server` ### `crates/ra_lsp_server`
An LSP implementation which wraps `ra_ide_api` into a language server protocol. An LSP implementation which wraps `ra_ide` into a language server protocol.
### `ra_vfs` ### `ra_vfs`
Although `hir` and `ra_ide_api` don't do any IO, we need to be able to read Although `hir` and `ra_ide` don't do any IO, we need to be able to read
files from disk at the end of the day. This is what `ra_vfs` does. It also files from disk at the end of the day. This is what `ra_vfs` does. It also
manages overlays: "dirty" files in the editor, whose "true" contents is manages overlays: "dirty" files in the editor, whose "true" contents is
different from data on disk. This is more or less the single really different from data on disk. This is more or less the single really
@ -162,13 +162,13 @@ disk. For this reason, we try to avoid writing too many tests on this boundary:
in a statically typed language, it's hard to make an error in the protocol in a statically typed language, it's hard to make an error in the protocol
itself if messages are themselves typed. itself if messages are themselves typed.
The middle, and most important, boundary is `ra_ide_api`. Unlike The middle, and most important, boundary is `ra_ide`. Unlike
`ra_lsp_server`, which exposes API, `ide_api` uses Rust API and is intended to `ra_lsp_server`, which exposes API, `ide` uses Rust API and is intended to
use by various tools. Typical test creates an `AnalysisHost`, calls some use by various tools. Typical test creates an `AnalysisHost`, calls some
`Analysis` functions and compares the results against expectation. `Analysis` functions and compares the results against expectation.
The innermost and most elaborate boundary is `hir`. It has a much richer The innermost and most elaborate boundary is `hir`. It has a much richer
vocabulary of types than `ide_api`, but the basic testing setup is the same: we vocabulary of types than `ide`, but the basic testing setup is the same: we
create a database, run some queries, assert result. create a database, run some queries, assert result.
For comparisons, we use [insta](https://github.com/mitsuhiko/insta/) library for For comparisons, we use [insta](https://github.com/mitsuhiko/insta/) library for

View file

@ -40,8 +40,8 @@ terms of files and offsets, and **not** in terms of Rust concepts like structs,
traits, etc. The "typed" API with Rust specific types is slightly lower in the traits, etc. The "typed" API with Rust specific types is slightly lower in the
stack, we'll talk about it later. stack, we'll talk about it later.
[`AnalysisHost`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/lib.rs#L265-L284 [`AnalysisHost`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide/src/lib.rs#L265-L284
[`Analysis`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/lib.rs#L291-L478 [`Analysis`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide/src/lib.rs#L291-L478
The reason for this separation of `Analysis` and `AnalysisHost` is that we want to apply The reason for this separation of `Analysis` and `AnalysisHost` is that we want to apply
changes "uniquely", but we might also want to fork an `Analysis` and send it to changes "uniquely", but we might also want to fork an `Analysis` and send it to
@ -69,7 +69,7 @@ the `AnalysisHost::apply_change` method, which accepts a single argument, a
"transaction", so it suffices to study its methods to understand all of the "transaction", so it suffices to study its methods to understand all of the
input data. input data.
[`AnalysisChange`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/lib.rs#L119-L167 [`AnalysisChange`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide/src/lib.rs#L119-L167
The `(add|change|remove)_file` methods control the set of the input files, where The `(add|change|remove)_file` methods control the set of the input files, where
each file has an integer id (`FileId`, picked by the client), text (`String`) each file has an integer id (`FileId`, picked by the client), text (`String`)
@ -253,7 +253,7 @@ All analyzer information is stored in a salsa database. `Analysis` and
`AnalysisHost` types are newtype wrappers for [`RootDatabase`] -- a salsa `AnalysisHost` types are newtype wrappers for [`RootDatabase`] -- a salsa
database. database.
[`RootDatabase`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/db.rs#L88-L134 [`RootDatabase`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide/src/db.rs#L88-L134
Salsa input queries are defined in [`FilesDatabase`] (which is a part of Salsa input queries are defined in [`FilesDatabase`] (which is a part of
`RootDatabase`). They closely mirror the familiar `AnalysisChange` structure: `RootDatabase`). They closely mirror the familiar `AnalysisChange` structure:
@ -565,11 +565,11 @@ the type to completion.
[schedule it on the threadpool]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_lsp_server/src/main_loop.rs#L428 [schedule it on the threadpool]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_lsp_server/src/main_loop.rs#L428
[catch]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_lsp_server/src/main_loop.rs#L436-L442 [catch]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_lsp_server/src/main_loop.rs#L436-L442
[the handler]: https://salsa.zulipchat.com/#narrow/stream/181542-rfcs.2Fsalsa-query-group/topic/design.20next.20steps [the handler]: https://salsa.zulipchat.com/#narrow/stream/181542-rfcs.2Fsalsa-query-group/topic/design.20next.20steps
[ask analysis for completion]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/lib.rs#L439-L444 [ask analysis for completion]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide/src/lib.rs#L439-L444
[completion implementation]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/completion.rs#L46-L62 [completion implementation]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide/src/completion.rs#L46-L62
[`CompletionContext`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/completion/completion_context.rs#L14-L37 [`CompletionContext`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide/src/completion/completion_context.rs#L14-L37
["IntelliJ Trick"]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/completion/completion_context.rs#L72-L75 ["IntelliJ Trick"]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide/src/completion/completion_context.rs#L72-L75
[find an ancestor `fn` node]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/completion/completion_context.rs#L116-L120 [find an ancestor `fn` node]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide/src/completion/completion_context.rs#L116-L120
[semantic model]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/completion/completion_context.rs#L123 [semantic model]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide/src/completion/completion_context.rs#L123
[series of independent completion routines]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/completion.rs#L52-L59 [series of independent completion routines]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide/src/completion.rs#L52-L59
[`complete_dot`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/completion/complete_dot.rs#L6-L22 [`complete_dot`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide/src/completion/complete_dot.rs#L6-L22

0
editors/code/src/utils/terminateProcess.sh Executable file → Normal file
View file

View file

@ -74,7 +74,7 @@ fn no_docs_comments() {
"ra_db", "ra_db",
"ra_hir", "ra_hir",
"ra_hir_expand", "ra_hir_expand",
"ra_ide_api", "ra_ide",
"ra_lsp_server", "ra_lsp_server",
"ra_mbe", "ra_mbe",
"ra_parser", "ra_parser",