rsmoji 0.3.2

Gitmoji, but oxidized!
pub mod handlers;

use crate::globals::{CATPPUCCIN_ACTIVE, cursor_to_start};
use crossterm::cursor::{MoveToColumn, MoveUp};
use crossterm::execute;
use crossterm::style::{Attribute, Print, SetAttribute, SetForegroundColor};
use crossterm::terminal::{Clear, ClearType};
use std::io;
use unicode_segmentation::UnicodeSegmentation;

pub fn reload_commit_message(commit_message: &String, insert_offset: usize, end: bool) {
	let message = "? Enter commit title: ";

	let text = if end { "? Commit title: " } else { message };
	let commit_message = commit_message.to_owned() + "\n";
	cursor_to_start();
	execute!(
		io::stdout(),
		Clear(ClearType::CurrentLine),
		SetAttribute(Attribute::Bold),
		SetForegroundColor(CATPPUCCIN_ACTIVE),
		Print(text),
		SetAttribute(Attribute::Reset),
		Print(&commit_message),
		MoveUp(1)
	)
	.expect("Failed to reload title input");

	let cols = message.len() + commit_message.graphemes(true).count() - insert_offset;
	execute!(io::stdout(), MoveToColumn(cols as u16 - 1),)
		.expect("Failed to move cursor to writing position");
}