update semantic index tests for elixir
This commit is contained in:
parent
97c3d97792
commit
cdceddd2cc
1 changed files with 88 additions and 109 deletions
|
@ -486,142 +486,121 @@ async fn test_code_context_retrieval_javascript() {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// #[gpui::test]
|
#[gpui::test]
|
||||||
// async fn test_code_context_retrieval_elixir() {
|
async fn test_code_context_retrieval_elixir() {
|
||||||
// let language = elixir_lang();
|
let language = elixir_lang();
|
||||||
// let mut retriever = CodeContextRetriever::new();
|
let mut retriever = CodeContextRetriever::new();
|
||||||
|
|
||||||
// let text = r#"
|
let text = r#"
|
||||||
// defmodule File.Stream do
|
defmodule File.Stream do
|
||||||
// @moduledoc """
|
@moduledoc """
|
||||||
// Defines a `File.Stream` struct returned by `File.stream!/3`.
|
Defines a `File.Stream` struct returned by `File.stream!/3`.
|
||||||
|
|
||||||
// The following fields are public:
|
The following fields are public:
|
||||||
|
|
||||||
// * `path` - the file path
|
* `path` - the file path
|
||||||
// * `modes` - the file modes
|
* `modes` - the file modes
|
||||||
// * `raw` - a boolean indicating if bin functions should be used
|
* `raw` - a boolean indicating if bin functions should be used
|
||||||
// * `line_or_bytes` - if reading should read lines or a given number of bytes
|
* `line_or_bytes` - if reading should read lines or a given number of bytes
|
||||||
// * `node` - the node the file belongs to
|
* `node` - the node the file belongs to
|
||||||
|
|
||||||
// """
|
"""
|
||||||
|
|
||||||
// defstruct path: nil, modes: [], line_or_bytes: :line, raw: true, node: nil
|
defstruct path: nil, modes: [], line_or_bytes: :line, raw: true, node: nil
|
||||||
|
|
||||||
// @type t :: %__MODULE__{}
|
@type t :: %__MODULE__{}
|
||||||
|
|
||||||
// @doc false
|
@doc false
|
||||||
// def __build__(path, modes, line_or_bytes) do
|
def __build__(path, modes, line_or_bytes) do
|
||||||
// raw = :lists.keyfind(:encoding, 1, modes) == false
|
raw = :lists.keyfind(:encoding, 1, modes) == false
|
||||||
|
|
||||||
// modes =
|
modes =
|
||||||
// case raw do
|
case raw do
|
||||||
// true ->
|
true ->
|
||||||
// case :lists.keyfind(:read_ahead, 1, modes) do
|
case :lists.keyfind(:read_ahead, 1, modes) do
|
||||||
// {:read_ahead, false} -> [:raw | :lists.keydelete(:read_ahead, 1, modes)]
|
{:read_ahead, false} -> [:raw | :lists.keydelete(:read_ahead, 1, modes)]
|
||||||
// {:read_ahead, _} -> [:raw | modes]
|
{:read_ahead, _} -> [:raw | modes]
|
||||||
// false -> [:raw, :read_ahead | modes]
|
false -> [:raw, :read_ahead | modes]
|
||||||
// end
|
end
|
||||||
|
|
||||||
// false ->
|
false ->
|
||||||
// modes
|
modes
|
||||||
// end
|
end
|
||||||
|
|
||||||
// %File.Stream{path: path, modes: modes, raw: raw, line_or_bytes: line_or_bytes, node: node()}
|
%File.Stream{path: path, modes: modes, raw: raw, line_or_bytes: line_or_bytes, node: node()}
|
||||||
|
|
||||||
// end
|
end"#
|
||||||
// "#
|
.unindent();
|
||||||
// .unindent();
|
|
||||||
|
|
||||||
// let parsed_files = retriever
|
let documents = retriever.parse_file(&text, language.clone()).unwrap();
|
||||||
// .parse_file(Path::new("foo.ex"), &text, language)
|
|
||||||
// .unwrap();
|
|
||||||
|
|
||||||
// let test_documents = &[
|
assert_documents_eq(
|
||||||
// Document{
|
&documents,
|
||||||
// name: "defmodule File.Stream".into(),
|
&[(
|
||||||
// range: 0..1132,
|
r#"
|
||||||
// content: r#"
|
defmodule File.Stream do
|
||||||
// The below code snippet is from file 'foo.ex'
|
@moduledoc """
|
||||||
|
Defines a `File.Stream` struct returned by `File.stream!/3`.
|
||||||
|
|
||||||
// ```elixir
|
The following fields are public:
|
||||||
// defmodule File.Stream do
|
|
||||||
// @moduledoc """
|
|
||||||
// Defines a `File.Stream` struct returned by `File.stream!/3`.
|
|
||||||
|
|
||||||
// The following fields are public:
|
* `path` - the file path
|
||||||
|
* `modes` - the file modes
|
||||||
|
* `raw` - a boolean indicating if bin functions should be used
|
||||||
|
* `line_or_bytes` - if reading should read lines or a given number of bytes
|
||||||
|
* `node` - the node the file belongs to
|
||||||
|
|
||||||
// * `path` - the file path
|
"""
|
||||||
// * `modes` - the file modes
|
|
||||||
// * `raw` - a boolean indicating if bin functions should be used
|
|
||||||
// * `line_or_bytes` - if reading should read lines or a given number of bytes
|
|
||||||
// * `node` - the node the file belongs to
|
|
||||||
|
|
||||||
// """
|
defstruct path: nil, modes: [], line_or_bytes: :line, raw: true, node: nil
|
||||||
|
|
||||||
// defstruct path: nil, modes: [], line_or_bytes: :line, raw: true, node: nil
|
@type t :: %__MODULE__{}
|
||||||
|
|
||||||
// @type t :: %__MODULE__{}
|
@doc false
|
||||||
|
def __build__(path, modes, line_or_bytes) do
|
||||||
|
raw = :lists.keyfind(:encoding, 1, modes) == false
|
||||||
|
|
||||||
// @doc false
|
modes =
|
||||||
// def __build__(path, modes, line_or_bytes) do
|
case raw do
|
||||||
// raw = :lists.keyfind(:encoding, 1, modes) == false
|
true ->
|
||||||
|
case :lists.keyfind(:read_ahead, 1, modes) do
|
||||||
|
{:read_ahead, false} -> [:raw | :lists.keydelete(:read_ahead, 1, modes)]
|
||||||
|
{:read_ahead, _} -> [:raw | modes]
|
||||||
|
false -> [:raw, :read_ahead | modes]
|
||||||
|
end
|
||||||
|
|
||||||
// modes =
|
false ->
|
||||||
// case raw do
|
modes
|
||||||
// true ->
|
end
|
||||||
// case :lists.keyfind(:read_ahead, 1, modes) do
|
|
||||||
// {:read_ahead, false} -> [:raw | :lists.keydelete(:read_ahead, 1, modes)]
|
|
||||||
// {:read_ahead, _} -> [:raw | modes]
|
|
||||||
// false -> [:raw, :read_ahead | modes]
|
|
||||||
// end
|
|
||||||
|
|
||||||
// false ->
|
%File.Stream{path: path, modes: modes, raw: raw, line_or_bytes: line_or_bytes, node: node()}
|
||||||
// modes
|
|
||||||
// end
|
|
||||||
|
|
||||||
// %File.Stream{path: path, modes: modes, raw: raw, line_or_bytes: line_or_bytes, node: node()}
|
end"#
|
||||||
|
.unindent(),
|
||||||
|
0,
|
||||||
|
),(r#"
|
||||||
|
@doc false
|
||||||
|
def __build__(path, modes, line_or_bytes) do
|
||||||
|
raw = :lists.keyfind(:encoding, 1, modes) == false
|
||||||
|
|
||||||
// end
|
modes =
|
||||||
// ```"#.unindent(),
|
case raw do
|
||||||
// embedding: vec![],
|
true ->
|
||||||
// },
|
case :lists.keyfind(:read_ahead, 1, modes) do
|
||||||
// Document {
|
{:read_ahead, false} -> [:raw | :lists.keydelete(:read_ahead, 1, modes)]
|
||||||
// name: "def __build__".into(),
|
{:read_ahead, _} -> [:raw | modes]
|
||||||
// range: 574..1132,
|
false -> [:raw, :read_ahead | modes]
|
||||||
// content: r#"
|
end
|
||||||
// The below code snippet is from file 'foo.ex'
|
|
||||||
|
|
||||||
// ```elixir
|
false ->
|
||||||
// @doc false
|
modes
|
||||||
// def __build__(path, modes, line_or_bytes) do
|
end
|
||||||
// raw = :lists.keyfind(:encoding, 1, modes) == false
|
|
||||||
|
|
||||||
// modes =
|
%File.Stream{path: path, modes: modes, raw: raw, line_or_bytes: line_or_bytes, node: node()}
|
||||||
// case raw do
|
|
||||||
// true ->
|
|
||||||
// case :lists.keyfind(:read_ahead, 1, modes) do
|
|
||||||
// {:read_ahead, false} -> [:raw | :lists.keydelete(:read_ahead, 1, modes)]
|
|
||||||
// {:read_ahead, _} -> [:raw | modes]
|
|
||||||
// false -> [:raw, :read_ahead | modes]
|
|
||||||
// end
|
|
||||||
|
|
||||||
// false ->
|
end"#.unindent(), 574)],
|
||||||
// modes
|
);
|
||||||
// end
|
}
|
||||||
|
|
||||||
// %File.Stream{path: path, modes: modes, raw: raw, line_or_bytes: line_or_bytes, node: node()}
|
|
||||||
|
|
||||||
// end
|
|
||||||
// ```"#
|
|
||||||
// .unindent(),
|
|
||||||
// embedding: vec![],
|
|
||||||
// }];
|
|
||||||
|
|
||||||
// for idx in 0..test_documents.len() {
|
|
||||||
// assert_eq!(test_documents[idx], parsed_files[idx]);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
#[gpui::test]
|
#[gpui::test]
|
||||||
async fn test_code_context_retrieval_cpp() {
|
async fn test_code_context_retrieval_cpp() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue