1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ 2 /* 3 * anjuta-token-list.h 4 * Copyright (C) Sébastien Granjoux 2009 <seb.sfo@free.fr> 5 * 6 * This program is free software: you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License as published by the 8 * Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, but 12 * WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14 * See the GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License along 17 * with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #ifndef _ANJUTA_TOKEN_LIST_H_ 21 #define _ANJUTA_TOKEN_LIST_H_ 22 23 #include <glib.h> 24 25 #include "anjuta-token.h" 26 27 G_BEGIN_DECLS 28 29 typedef struct _AnjutaTokenStyle AnjutaTokenStyle; 30 31 enum AnjutaTokenSearchFlag 32 { 33 ANJUTA_SEARCH_OVER = 0, 34 ANJUTA_SEARCH_INTO = 1 << 0, 35 ANJUTA_SEARCH_ALL = 1 << 1, 36 ANJUTA_SEARCH_BACKWARD = 1 << 2, 37 ANJUTA_TOKEN_SEARCH_LAST = 1 << 3, 38 ANJUTA_TOKEN_SEARCH_NOT = 1 << 4, 39 }; 40 41 AnjutaTokenStyle *anjuta_token_style_new (const gchar *start, const gchar *next, const gchar *eol, const gchar *last, guint max_width); 42 AnjutaTokenStyle *anjuta_token_style_new_from_base (AnjutaTokenStyle *base); 43 void anjuta_token_style_free (AnjutaTokenStyle *style); 44 45 void anjuta_token_style_update (AnjutaTokenStyle *style, AnjutaToken *list); 46 void anjuta_token_style_format (AnjutaTokenStyle *style, AnjutaToken *list); 47 48 AnjutaToken *anjuta_token_first_word (AnjutaToken *list); 49 AnjutaToken *anjuta_token_nth_word (AnjutaToken *list, guint n); 50 AnjutaToken *anjuta_token_next_word (AnjutaToken *item); 51 52 AnjutaToken *anjuta_token_replace_nth_word (AnjutaToken *list, guint n, AnjutaToken *item); 53 AnjutaToken *anjuta_token_insert_word_before (AnjutaToken *list, AnjutaToken *sibling, AnjutaToken *baby); 54 AnjutaToken *anjuta_token_insert_word_after (AnjutaToken *list, AnjutaToken *sibling, AnjutaToken *baby); 55 AnjutaToken *anjuta_token_remove_word (AnjutaToken *token); 56 AnjutaToken *anjuta_token_remove_list (AnjutaToken *token); 57 58 AnjutaToken *anjuta_token_insert_token_list (gboolean after, AnjutaToken *list,...); 59 AnjutaToken *anjuta_token_find_type (AnjutaToken *list, gint flags, AnjutaTokenType* types); 60 AnjutaToken *anjuta_token_skip_comment (AnjutaToken *list); 61 62 G_END_DECLS 63 64 #endif 65