Blender  V2.93
Enumerations | Functions
BKE_text.h File Reference

Go to the source code of this file.

Enumerations

enum  { TXT_MOVE_LINE_UP = -1 , TXT_MOVE_LINE_DOWN = 1 }
 

Functions

void BKE_text_free_lines (struct Text *text)
 
struct TextBKE_text_add (struct Main *bmain, const char *name)
 
int txt_extended_ascii_as_utf8 (char **str)
 
bool BKE_text_reload (struct Text *text)
 
struct TextBKE_text_load_ex (struct Main *bmain, const char *file, const char *relpath, const bool is_internal)
 
struct TextBKE_text_load (struct Main *bmain, const char *file, const char *relpath)
 
void BKE_text_clear (struct Text *text)
 
void BKE_text_write (struct Text *text, const char *str)
 
int BKE_text_file_modified_check (struct Text *text)
 
void BKE_text_file_modified_ignore (struct Text *text)
 
char * txt_to_buf (struct Text *text, int *r_buf_strlen)
 
void txt_clean_text (struct Text *text)
 
void txt_order_cursors (struct Text *text, const bool reverse)
 
int txt_find_string (struct Text *text, const char *findstr, int wrap, int match_case)
 
bool txt_has_sel (struct Text *text)
 
int txt_get_span (struct TextLine *from, struct TextLine *to)
 
void txt_move_up (struct Text *text, const bool sel)
 
void txt_move_down (struct Text *text, const bool sel)
 
void txt_move_left (struct Text *text, const bool sel)
 
void txt_move_right (struct Text *text, const bool sel)
 
void txt_jump_left (struct Text *text, const bool sel, const bool use_init_step)
 
void txt_jump_right (struct Text *text, const bool sel, const bool use_init_step)
 
void txt_move_bof (struct Text *text, const bool sel)
 
void txt_move_eof (struct Text *text, const bool sel)
 
void txt_move_bol (struct Text *text, const bool sel)
 
void txt_move_eol (struct Text *text, const bool sel)
 
void txt_move_toline (struct Text *text, unsigned int line, const bool sel)
 
void txt_move_to (struct Text *text, unsigned int line, unsigned int ch, const bool sel)
 
void txt_pop_sel (struct Text *text)
 
void txt_delete_char (struct Text *text)
 
void txt_delete_word (struct Text *text)
 
void txt_delete_selected (struct Text *text)
 
void txt_sel_all (struct Text *text)
 
void txt_sel_clear (struct Text *text)
 
void txt_sel_line (struct Text *text)
 
void txt_sel_set (struct Text *text, int startl, int startc, int endl, int endc)
 
char * txt_sel_to_buf (struct Text *text, int *r_buf_strlen)
 
void txt_insert_buf (struct Text *text, const char *in_buffer)
 
void txt_split_curline (struct Text *text)
 
void txt_backspace_char (struct Text *text)
 
void txt_backspace_word (struct Text *text)
 
bool txt_add_char (struct Text *text, unsigned int add)
 
bool txt_add_raw_char (struct Text *text, unsigned int add)
 
bool txt_replace_char (struct Text *text, unsigned int add)
 
bool txt_unindent (struct Text *text)
 
void txt_comment (struct Text *text)
 
void txt_indent (struct Text *text)
 
bool txt_uncomment (struct Text *text)
 
void txt_move_lines (struct Text *text, const int direction)
 
void txt_duplicate_line (struct Text *text)
 
int txt_setcurr_tab_spaces (struct Text *text, int space)
 
bool txt_cursor_is_line_start (struct Text *text)
 
bool txt_cursor_is_line_end (struct Text *text)
 
int txt_calc_tab_left (struct TextLine *tl, int ch)
 
int txt_calc_tab_right (struct TextLine *tl, int ch)
 
int text_check_bracket (const char ch)
 
bool text_check_delim (const char ch)
 
bool text_check_digit (const char ch)
 
bool text_check_identifier (const char ch)
 
bool text_check_identifier_nodigit (const char ch)
 
bool text_check_whitespace (const char ch)
 
int text_find_identifier_start (const char *str, int i)
 
int text_check_identifier_unicode (const unsigned int ch)
 
int text_check_identifier_nodigit_unicode (const unsigned int ch)
 
char * txt_to_buf_for_undo (struct Text *text, int *r_buf_len)
 
void txt_from_buf_for_undo (struct Text *text, const char *buf, int buf_len)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
TXT_MOVE_LINE_UP 
TXT_MOVE_LINE_DOWN 

Definition at line 107 of file BKE_text.h.

Function Documentation

◆ BKE_text_add()

struct Text* BKE_text_add ( struct Main bmain,
const char *  name 
)

Definition at line 292 of file text.c.

References BKE_id_new(), Text::id, id_fake_user_set(), ID_TXT, and id_us_min().

Referenced by text_new_exec().

◆ BKE_text_clear()

void BKE_text_clear ( struct Text text)

Definition at line 538 of file text.c.

References txt_delete_sel(), txt_make_dirty(), and txt_sel_all().

◆ BKE_text_file_modified_check()

int BKE_text_file_modified_check ( struct Text text)

◆ BKE_text_file_modified_ignore()

void BKE_text_file_modified_ignore ( struct Text text)

◆ BKE_text_free_lines()

void BKE_text_free_lines ( Text text)
Note
caller must handle compiled member.

Definition at line 276 of file text.c.

References BLI_listbase_clear(), Text::curl, ListBase::first, Text::lines, MEM_freeN, NULL, and Text::sell.

Referenced by BKE_text_reload(), and text_free_data().

◆ BKE_text_load()

struct Text* BKE_text_load ( Main bmain,
const char *  file,
const char *  relpath 
)

Load a text file.

Note
Text data-blocks have no user by default, only the 'real user' flag.

Definition at line 533 of file text.c.

References BKE_text_load_ex(), and file.

Referenced by Freestyle::PythonInterpreter::interpretFile().

◆ BKE_text_load_ex()

struct Text* BKE_text_load_ex ( Main bmain,
const char *  file,
const char *  relpath,
const bool  is_internal 
)

Load a text file.

Parameters
is_internalIf true, this text data-block only exists in memory, not as a file on disk.
Note
text data-blocks have no real user but have 'fake user' enabled by default

Definition at line 476 of file text.c.

References BKE_libblock_alloc(), BLI_file_read_text_as_mem(), BLI_listbase_clear(), BLI_path_abs(), BLI_path_basename(), BLI_stat(), BLI_strncpy(), buffer, Text::curl, file, FILE_MAX, Text::filepath, Text::flags, Text::id, id_fake_user_set(), ID_TXT, id_us_min(), Text::lines, MEM_freeN, MEM_mallocN, Text::mtime, NULL, Text::sell, text_from_buf(), TXT_ISDIRTY, TXT_ISMEM, TXT_TABSTOSPACES, and USER_TXT_TABSTOSPACES_DISABLE.

Referenced by BKE_text_load(), and text_open_exec().

◆ BKE_text_reload()

bool BKE_text_reload ( struct Text text)

◆ BKE_text_write()

void BKE_text_write ( struct Text text,
const char *  str 
)

Definition at line 545 of file text.c.

References str, txt_insert_buf(), txt_make_dirty(), and txt_move_eof().

◆ text_check_bracket()

int text_check_bracket ( const char  ch)

Definition at line 2383 of file text.c.

References Freestyle::a.

◆ text_check_delim()

bool text_check_delim ( const char  ch)

◆ text_check_digit()

bool text_check_digit ( const char  ch)

◆ text_check_identifier()

bool text_check_identifier ( const char  ch)

◆ text_check_identifier_nodigit()

bool text_check_identifier_nodigit ( const char  ch)

Definition at line 2449 of file text.c.

Referenced by text_check_identifier_nodigit_unicode().

◆ text_check_identifier_nodigit_unicode()

int text_check_identifier_nodigit_unicode ( const unsigned int  ch)

Definition at line 2475 of file text.c.

References text_check_identifier_nodigit().

Referenced by text_autocomplete_build().

◆ text_check_identifier_unicode()

int text_check_identifier_unicode ( const unsigned int  ch)

Definition at line 2470 of file text.c.

References text_check_identifier().

Referenced by text_autocomplete_build().

◆ text_check_whitespace()

bool text_check_whitespace ( const char  ch)

Definition at line 2481 of file text.c.

References ELEM.

Referenced by text_autocomplete_modal(), txtfmt_osl_find_preprocessor(), and txtfmt_py_find_decorator().

◆ text_find_identifier_start()

int text_find_identifier_start ( const char *  str,
int  i 
)

Definition at line 2489 of file text.c.

References str, text_check_identifier(), and UNLIKELY.

Referenced by confirm_suggestion(), get_suggest_prefix(), and text_autocomplete_build().

◆ txt_add_char()

bool txt_add_char ( struct Text text,
unsigned int  add 
)

◆ txt_add_raw_char()

bool txt_add_raw_char ( struct Text text,
unsigned int  add 
)

Definition at line 2033 of file text.c.

References add(), and txt_add_char_intern().

Referenced by txt_insert_buf().

◆ txt_backspace_char()

void txt_backspace_char ( struct Text text)

◆ txt_backspace_word()

void txt_backspace_word ( struct Text text)

Definition at line 1963 of file text.c.

References txt_delete_sel(), txt_jump_left(), and txt_make_dirty().

Referenced by text_delete_exec().

◆ txt_calc_tab_left()

int txt_calc_tab_left ( struct TextLine tl,
int  ch 
)

Definition at line 864 of file text.c.

References TextLine::line, and TXT_TABSIZE.

Referenced by text_delete_exec(), and txt_move_left().

◆ txt_calc_tab_right()

int txt_calc_tab_right ( struct TextLine tl,
int  ch 
)

Definition at line 884 of file text.c.

References TextLine::line, and TXT_TABSIZE.

Referenced by text_delete_exec(), and txt_move_right().

◆ txt_clean_text()

void txt_clean_text ( struct Text text)

◆ txt_comment()

void txt_comment ( struct Text text)

Definition at line 2244 of file text.c.

References Text::curl, ELEM, NULL, Text::sell, txt_has_sel(), and txt_select_prefix().

Referenced by text_comment_exec().

◆ txt_cursor_is_line_end()

bool txt_cursor_is_line_end ( struct Text text)

Definition at line 789 of file text.c.

References TextLine::len, Text::selc, and Text::sell.

Referenced by text_delete_exec(), and text_move_cursor().

◆ txt_cursor_is_line_start()

bool txt_cursor_is_line_start ( struct Text text)

Definition at line 784 of file text.c.

References Text::selc.

Referenced by text_delete_exec(), and text_move_cursor().

◆ txt_delete_char()

void txt_delete_char ( struct Text text)

◆ txt_delete_selected()

void txt_delete_selected ( struct Text text)

Definition at line 2038 of file text.c.

References txt_delete_sel(), and txt_make_dirty().

Referenced by text_cut_exec().

◆ txt_delete_word()

void txt_delete_word ( struct Text text)

Definition at line 1911 of file text.c.

References txt_delete_sel(), txt_jump_right(), and txt_make_dirty().

Referenced by text_delete_exec().

◆ txt_duplicate_line()

void txt_duplicate_line ( struct Text text)

◆ txt_extended_ascii_as_utf8()

int txt_extended_ascii_as_utf8 ( char **  str)

◆ txt_find_string()

int txt_find_string ( struct Text text,
const char *  findstr,
int  wrap,
int  match_case 
)

◆ txt_from_buf_for_undo()

void txt_from_buf_for_undo ( Text text,
const char *  buf,
int  buf_len 
)

◆ txt_get_span()

int txt_get_span ( struct TextLine from,
struct TextLine to 
)

◆ txt_has_sel()

bool txt_has_sel ( struct Text text)

◆ txt_indent()

void txt_indent ( struct Text text)

Definition at line 2267 of file text.c.

References Text::curl, ELEM, Text::flags, NULL, Text::sell, tab_to_spaces, txt_select_prefix(), and TXT_TABSTOSPACES.

Referenced by text_indent_exec().

◆ txt_insert_buf()

void txt_insert_buf ( struct Text text,
const char *  in_buffer 
)

◆ txt_jump_left()

void txt_jump_left ( struct Text text,
const bool  sel,
const bool  use_init_step 
)

◆ txt_jump_right()

void txt_jump_right ( struct Text text,
const bool  sel,
const bool  use_init_step 
)

◆ txt_move_bof()

void txt_move_bof ( struct Text text,
const bool  sel 
)

Definition at line 1085 of file text.c.

References ListBase::first, Text::lines, txt_curs_cur(), txt_curs_sel(), and txt_pop_sel().

Referenced by text_move_cursor().

◆ txt_move_bol()

void txt_move_bol ( struct Text text,
const bool  sel 
)

Definition at line 1041 of file text.c.

References txt_curs_cur(), txt_curs_sel(), and txt_pop_sel().

Referenced by text_move_cursor(), and txt_move_up().

◆ txt_move_down()

void txt_move_down ( struct Text text,
const bool  sel 
)

◆ txt_move_eof()

void txt_move_eof ( struct Text text,
const bool  sel 
)

Definition at line 1108 of file text.c.

References ListBase::last, Text::lines, txt_curs_cur(), txt_curs_sel(), and txt_pop_sel().

Referenced by BKE_text_write(), and text_move_cursor().

◆ txt_move_eol()

void txt_move_eol ( struct Text text,
const bool  sel 
)

Definition at line 1063 of file text.c.

References txt_curs_cur(), txt_curs_sel(), and txt_pop_sel().

Referenced by text_move_cursor(), and txt_move_down().

◆ txt_move_left()

void txt_move_left ( struct Text text,
const bool  sel 
)

◆ txt_move_lines()

void txt_move_lines ( struct Text text,
const int  direction 
)

◆ txt_move_right()

void txt_move_right ( struct Text text,
const bool  sel 
)

◆ txt_move_to()

void txt_move_to ( struct Text text,
unsigned int  line,
unsigned int  ch,
const bool  sel 
)

◆ txt_move_toline()

void txt_move_toline ( struct Text text,
unsigned int  line,
const bool  sel 
)

Definition at line 1131 of file text.c.

References txt_move_to().

Referenced by text_find_and_replace(), text_jump_exec(), text_line_number_invoke(), and text_replace_all().

◆ txt_move_up()

void txt_move_up ( struct Text text,
const bool  sel 
)

◆ txt_order_cursors()

void txt_order_cursors ( struct Text text,
const bool  reverse 
)

◆ txt_pop_sel()

void txt_pop_sel ( struct Text text)

◆ txt_replace_char()

bool txt_replace_char ( struct Text text,
unsigned int  add 
)

◆ txt_sel_all()

void txt_sel_all ( struct Text text)

◆ txt_sel_clear()

void txt_sel_clear ( Text text)

Reverse of txt_pop_sel Clears the selection and ensures the cursor is located at the selection (where the cursor is visually while editing).

Definition at line 1301 of file text.c.

References Text::curc, Text::curl, Text::selc, and Text::sell.

Referenced by text_move_cursor().

◆ txt_sel_line()

void txt_sel_line ( struct Text text)

Definition at line 1309 of file text.c.

References Text::curc, Text::curl, TextLine::len, Text::selc, and Text::sell.

Referenced by text_select_line_exec().

◆ txt_sel_set()

void txt_sel_set ( struct Text text,
int  startl,
int  startc,
int  endl,
int  endc 
)

◆ txt_sel_to_buf()

char* txt_sel_to_buf ( struct Text text,
int *  r_buf_strlen 
)

◆ txt_setcurr_tab_spaces()

int txt_setcurr_tab_spaces ( struct Text text,
int  space 
)

Definition at line 2320 of file text.c.

References Freestyle::a, Text::curc, Text::curl, ELEM, Text::flags, TextLine::line, NULL, and TXT_TABSTOSPACES.

Referenced by text_line_break_exec().

◆ txt_split_curline()

void txt_split_curline ( struct Text text)

◆ txt_to_buf()

char* txt_to_buf ( struct Text text,
int *  r_buf_strlen 
)

◆ txt_to_buf_for_undo()

char* txt_to_buf_for_undo ( Text text,
int *  r_buf_len 
)

Create a buffer, the only requirement is txt_from_buf_for_undo can decode it.

Definition at line 1390 of file text.c.

References l, Text::lines, LISTBASE_FOREACH, and MEM_mallocN.

Referenced by text_state_encode().

◆ txt_uncomment()

bool txt_uncomment ( struct Text text)

Definition at line 2256 of file text.c.

References Text::curl, ELEM, NULL, Text::sell, and txt_select_unprefix().

Referenced by text_comment_exec().

◆ txt_unindent()

bool txt_unindent ( struct Text text)