Blender V5.0
BKE_text.h File Reference
#include "BLI_compiler_attrs.h"
#include "BLI_sys_types.h"

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 *filepath, const char *relbase, bool is_internal) ATTR_NONNULL(1
struct Text struct TextBKE_text_load (struct Main *bmain, const char *filepath, const char *relbase) ATTR_NONNULL(1
struct Text struct Text void BKE_text_clear (struct Text *text) ATTR_NONNULL(1)
void BKE_text_write (struct Text *text, const char *str, int str_len) ATTR_NONNULL(1
void int BKE_text_file_modified_check (const struct Text *text)
void BKE_text_file_modified_ignore (struct Text *text)
char * txt_to_buf (struct Text *text, size_t *r_buf_strlen) ATTR_NONNULL(1
void txt_clean_text (struct Text *text)
void txt_order_cursors (struct Text *text, bool reverse)
bool txt_find_string (struct Text *text, const char *findstr, int wrap, int match_case)
bool txt_has_sel (const struct Text *text)
int txt_get_span (const struct TextLine *from, const struct TextLine *to)
void txt_move_up (struct Text *text, bool sel)
void txt_move_down (struct Text *text, bool sel)
void txt_move_left (struct Text *text, bool sel)
void txt_move_right (struct Text *text, bool sel)
void txt_jump_left (struct Text *text, bool sel, bool use_init_step)
void txt_jump_right (struct Text *text, bool sel, bool use_init_step)
void txt_move_bof (struct Text *text, bool sel)
void txt_move_eof (struct Text *text, bool sel)
void txt_move_bol (struct Text *text, bool sel)
void txt_move_eol (struct Text *text, bool sel)
void txt_move_toline (struct Text *text, unsigned int line, bool sel)
void txt_move_to (struct Text *text, unsigned int line, unsigned int ch, 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 (const struct Text *text, size_t *r_buf_strlen)
void txt_insert_buf (struct Text *text, const char *in_buffer, int in_buffer_len) ATTR_NONNULL(1
void 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_indent (struct Text *text)
void txt_comment (struct Text *text, const char *prefix)
bool txt_uncomment (struct Text *text, const char *prefix)
void txt_move_lines (struct Text *text, 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 (const struct Text *text)
bool txt_cursor_is_line_end (const struct Text *text)
int txt_calc_tab_left (const struct TextLine *tl, int ch)
int txt_calc_tab_right (const struct TextLine *tl, int ch)
int text_check_bracket (char ch)
bool text_check_delim (char ch)
bool text_check_digit (char ch)
bool text_check_identifier (char ch)
bool text_check_identifier_nodigit (char ch)
bool text_check_whitespace (char ch)
int text_find_identifier_start (const char *str, int i)
char * txt_to_buf_for_undo (struct Text *text, size_t *r_buf_len) ATTR_NONNULL(1
void txt_from_buf_for_undo (struct Text *text, const char *buf, size_t buf_len) ATTR_NONNULL(1
Character Classification

Defined in bpy_interface.cc (not ideal).

int text_check_identifier_unicode (unsigned int ch)
int text_check_identifier_nodigit_unicode (unsigned int ch)

Variables

char ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
TXT_MOVE_LINE_UP 
TXT_MOVE_LINE_DOWN 

Definition at line 141 of file BKE_text.h.

Function Documentation

◆ BKE_text_add()

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

Definition at line 281 of file text.cc.

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

Referenced by text_new_exec().

◆ BKE_text_clear()

struct Text struct Text void BKE_text_clear ( struct Text * text)

Definition at line 511 of file text.cc.

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

◆ BKE_text_file_modified_check()

void int BKE_text_file_modified_check ( const struct Text * text)
Returns
codes:
  • 0 if filepath on disk is the same or Text is in memory only.
  • 1 if filepath has been modified on disk since last local edit.
  • 2 if filepath on disk has been deleted.
  • -1 is returned if an error occurs.

Referenced by text_resolve_conflict_invoke().

◆ BKE_text_file_modified_ignore()

void BKE_text_file_modified_ignore ( struct Text * text)

◆ BKE_text_free_lines()

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

Definition at line 264 of file text.cc.

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

Referenced by BKE_text_reload(), and text_free_data().

◆ BKE_text_load()

struct Text struct Text * BKE_text_load ( struct Main * bmain,
const char * filepath,
const char * relbase )

Load a text file.

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

Referenced by Freestyle::PythonInterpreter::interpretFile(), and text_jump_to_file_at_point_internal().

◆ BKE_text_load_ex()

struct Text * BKE_text_load_ex ( struct Main * bmain,
const char * filepath,
const char * relbase,
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

Referenced by text_open_exec().

◆ BKE_text_reload()

◆ BKE_text_write()

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

References str.

◆ text_check_bracket()

int text_check_bracket ( char ch)

Utility functions, could be moved somewhere more generic but are python/text related.

Definition at line 2273 of file text.cc.

Referenced by draw_brackets(), and txt_calc_tab_right().

◆ text_check_delim()

◆ text_check_digit()

◆ text_check_identifier()

◆ text_check_identifier_nodigit()

bool text_check_identifier_nodigit ( char ch)

◆ text_check_identifier_nodigit_unicode()

int text_check_identifier_nodigit_unicode ( unsigned int ch)
extern

◆ text_check_identifier_unicode()

int text_check_identifier_unicode ( unsigned int ch)
extern

Definition at line 2361 of file text.cc.

References text_check_identifier(), and text_check_identifier().

Referenced by text_autocomplete_build(), and txt_calc_tab_right().

◆ text_check_whitespace()

bool text_check_whitespace ( char ch)

◆ text_find_identifier_start()

int text_find_identifier_start ( const char * str,
int i )

◆ 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 1923 of file text.cc.

References add(), and txt_add_char_intern().

Referenced by txt_insert_buf(), and txt_insert_buf().

◆ txt_backspace_char()

◆ txt_backspace_word()

void txt_backspace_word ( struct Text * text)

Definition at line 1853 of file text.cc.

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

Referenced by text_delete_exec(), and txt_insert_buf().

◆ txt_calc_tab_left()

int txt_calc_tab_left ( const struct TextLine * tl,
int ch )

◆ txt_calc_tab_right()

◆ txt_clean_text()

◆ txt_comment()

void txt_comment ( struct Text * text,
const char * prefix )

Definition at line 2138 of file text.cc.

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

Referenced by text_comment_exec(), and txt_insert_buf().

◆ txt_cursor_is_line_end()

bool txt_cursor_is_line_end ( const struct Text * text)

◆ txt_cursor_is_line_start()

bool txt_cursor_is_line_start ( const struct Text * text)

◆ txt_delete_char()

◆ txt_delete_selected()

void txt_delete_selected ( struct Text * text)

Definition at line 1928 of file text.cc.

References txt_delete_sel(), and txt_make_dirty().

Referenced by text_cut_exec(), and txt_get_span().

◆ txt_delete_word()

void txt_delete_word ( struct Text * text)

Definition at line 1804 of file text.cc.

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

Referenced by text_delete_exec(), and txt_get_span().

◆ txt_duplicate_line()

void txt_duplicate_line ( struct Text * text)

◆ txt_extended_ascii_as_utf8()

int txt_extended_ascii_as_utf8 ( char ** str)

Use to a valid UTF8 sequences. this function replaces extended ASCII characters.

Definition at line 294 of file text.cc.

References BLI_str_utf8_from_unicode(), BLI_str_utf8_invalid_byte(), i, length(), MEM_freeN(), MEM_malloc_arrayN(), and str.

Referenced by blo_do_versions_260(), cleanup_textline(), and txt_insert_buf().

◆ txt_find_string()

bool 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 ( struct Text * text,
const char * buf,
size_t buf_len )

Decode a buffer from txt_to_buf_for_undo.

References ATTR_NONNULL, and txt_from_buf_for_undo().

Referenced by text_state_decode(), and txt_from_buf_for_undo().

◆ txt_get_span()

◆ txt_has_sel()

◆ txt_indent()

void txt_indent ( struct Text * text)

◆ txt_insert_buf()

◆ txt_jump_left()

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

◆ txt_jump_right()

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

◆ txt_move_bof()

void txt_move_bof ( struct Text * text,
bool sel )

Definition at line 1049 of file text.cc.

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

Referenced by text_move_cursor(), and txt_get_span().

◆ txt_move_bol()

void txt_move_bol ( struct Text * text,
bool sel )

Definition at line 1005 of file text.cc.

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

Referenced by text_move_cursor(), txt_get_span(), and txt_move_up().

◆ txt_move_down()

◆ txt_move_eof()

void txt_move_eof ( struct Text * text,
bool sel )

◆ txt_move_eol()

void txt_move_eol ( struct Text * text,
bool sel )

Definition at line 1027 of file text.cc.

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

Referenced by text_move_cursor(), txt_get_span(), and txt_move_down().

◆ txt_move_left()

◆ txt_move_lines()

◆ txt_move_right()

◆ txt_move_to()

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

◆ txt_move_toline()

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

◆ txt_move_up()

◆ txt_order_cursors()

◆ txt_pop_sel()

◆ txt_replace_char()

◆ txt_sel_all()

void txt_sel_all ( struct Text * text)

◆ txt_sel_clear()

void txt_sel_clear ( struct 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 1264 of file text.cc.

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

Referenced by text_move_cursor(), and txt_get_span().

◆ txt_sel_line()

void txt_sel_line ( struct Text * text)

Definition at line 1272 of file text.cc.

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

Referenced by text_select_line_exec(), and txt_get_span().

◆ txt_sel_set()

◆ txt_sel_to_buf()

◆ txt_setcurr_tab_spaces()

int txt_setcurr_tab_spaces ( struct Text * text,
int space )

Definition at line 2210 of file text.cc.

References Text::curc, Text::curl, ELEM, Text::flags, i, TextLine::line, and TXT_TABSTOSPACES.

Referenced by text_line_break_exec(), and txt_insert_buf().

◆ txt_split_curline()

◆ txt_to_buf()

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

Referenced by python_script_exec().

◆ txt_to_buf_for_undo()

char * txt_to_buf_for_undo ( struct Text * text,
size_t * r_buf_len )

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

References ATTR_RETURNS_NONNULL, and ATTR_WARN_UNUSED_RESULT.

Referenced by text_state_encode().

◆ txt_uncomment()

bool txt_uncomment ( struct Text * text,
const char * prefix )

Definition at line 2148 of file text.cc.

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

Referenced by text_comment_exec(), and txt_insert_buf().

◆ txt_unindent()

bool txt_unindent ( struct Text * text)

Variable Documentation

◆ ATTR_RETURNS_NONNULL

char ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL

Definition at line 60 of file BKE_text.h.