[gnome-builder] libide-code: improve header formatting for specific languages
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] libide-code: improve header formatting for specific languages
- Date: Tue, 12 Jul 2022 06:39:07 +0000 (UTC)
commit 4b2ddea481f6a3e09a1f9ab0d0d95f0b1e7030d5
Author: Christian Hergert <chergert redhat com>
Date: Mon Jul 11 16:21:40 2022 -0700
libide-code: improve header formatting for specific languages
Template-GLib improved some features which allow this to be a bit cleaner
than it was previously.
src/libide/code/ide-language.c | 27 ++++++++++++++-------------
src/libide/code/ide-language.h | 2 +-
2 files changed, 15 insertions(+), 14 deletions(-)
---
diff --git a/src/libide/code/ide-language.c b/src/libide/code/ide-language.c
index b0aabe392..da674ba8c 100644
--- a/src/libide/code/ide-language.c
+++ b/src/libide/code/ide-language.c
@@ -43,7 +43,9 @@ ide_language_format_header (GtkSourceLanguage *self,
guint prefix_len;
g_return_val_if_fail (GTK_SOURCE_IS_LANGUAGE (self), NULL);
- g_return_val_if_fail (header != NULL, NULL);
+
+ if (ide_str_empty0 (header))
+ return g_strdup ("");
first_prefix = gtk_source_language_get_metadata (self, "block-comment-start");
last_prefix = gtk_source_language_get_metadata (self, "block-comment-end");
@@ -55,24 +57,29 @@ ide_language_format_header (GtkSourceLanguage *self,
if (first_prefix == NULL || last_prefix == NULL)
{
+ if (line_prefix == NULL)
+ line_prefix = "";
+
first_prefix = line_prefix;
last_prefix = line_prefix;
}
- prefix_len = strlen (first_prefix);
+ g_assert (first_prefix != NULL);
+ g_assert (last_prefix != NULL);
+ g_assert (line_prefix != NULL);
+ prefix_len = strlen (first_prefix);
outstr = g_string_new (NULL);
- ide_line_reader_init (&reader, (gchar *)header, -1);
-
- while (NULL != (line = ide_line_reader_next (&reader, &len)))
+ ide_line_reader_init (&reader, (char *)header, -1);
+ while ((line = ide_line_reader_next (&reader, &len)))
{
if (first)
{
g_string_append (outstr, first_prefix);
first = FALSE;
}
- else if (line_prefix == NULL)
+ else if (ide_str_empty0 (line_prefix))
{
for (guint i = 0; i < prefix_len; i++)
g_string_append_c (outstr, ' ');
@@ -88,18 +95,12 @@ ide_language_format_header (GtkSourceLanguage *self,
g_string_append_len (outstr, line, len);
}
- /* Lines ending in expansion need an extra \n */
- if (outstr->len > 2 &&
- outstr->str[outstr->len - 2] == '}' &&
- outstr->str[outstr->len - 1] == '}')
- g_string_append_c (outstr, '\n');
-
g_string_append_c (outstr, '\n');
}
if (last_prefix && g_strcmp0 (first_prefix, last_prefix) != 0)
{
- if (line_prefix && *line_prefix == ' ')
+ if (line_prefix && line_prefix[0] == ' ')
g_string_append_c (outstr, ' ');
g_string_append (outstr, last_prefix);
g_string_append_c (outstr, '\n');
diff --git a/src/libide/code/ide-language.h b/src/libide/code/ide-language.h
index 9af163164..0f486bad9 100644
--- a/src/libide/code/ide-language.h
+++ b/src/libide/code/ide-language.h
@@ -29,7 +29,7 @@
G_BEGIN_DECLS
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_IN_ALL
gchar *ide_language_format_header (GtkSourceLanguage *language,
const gchar *header);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]