51 lines
1.0 KiB
C
51 lines
1.0 KiB
C
|
/* date = July 8th 2025 10:13 am */
|
||
|
|
||
|
#ifndef FCODER_TREE_SITTER_H
|
||
|
#define FCODER_TREE_SITTER_H
|
||
|
|
||
|
#include <tree_sitter/api.h>
|
||
|
|
||
|
enum File_Language_Kind
|
||
|
{
|
||
|
File_Language_None,
|
||
|
File_Language_Unknown,
|
||
|
File_Language_Text,
|
||
|
File_Language_Markdown,
|
||
|
File_Language_C,
|
||
|
File_Language_CPP,
|
||
|
File_Language_ObjectiveC,
|
||
|
File_Language_HLSL,
|
||
|
File_Language_GLSL,
|
||
|
File_Language_Jai,
|
||
|
File_Language_CSharp,
|
||
|
File_Language_Swift,
|
||
|
File_Language_Go,
|
||
|
File_Language_Rust,
|
||
|
File_Language_Javascript,
|
||
|
File_Language_Typescript,
|
||
|
File_Language_JSON,
|
||
|
File_Language_Odin,
|
||
|
File_Language_Zig,
|
||
|
};
|
||
|
|
||
|
extern "C" {
|
||
|
TSLanguage *tree_sitter_cpp();
|
||
|
TSLanguage *tree_sitter_c();
|
||
|
}
|
||
|
|
||
|
CUSTOM_ID(attachment, buffer_tree_sitter_data_id);
|
||
|
CUSTOM_ID(attachment, buffer_tree_sitter_parse_task_id);
|
||
|
|
||
|
struct Buffer_Tree_Sitter_Data
|
||
|
{
|
||
|
TSLanguage* language;
|
||
|
TSTree* tree;
|
||
|
|
||
|
System_Mutex tree_mutex;
|
||
|
};
|
||
|
|
||
|
b8 use_tree_sitter_code_indexing = true;
|
||
|
function void tree_sitter_code_index_update_tick(Application_Links *app);
|
||
|
|
||
|
#endif //FCODER_TREE_SITTER_H
|