recursive vs recursively enumerable vs non-recursively enumerable vs uncomputable

I can’t tell if there are any differences between non-recursively enumerable and uncomputable? what makes a language one or the other?

Is it safe to assume that all recursive languages are decideable or is it possible to have a undecideable language that’s recursive?

Are all recursively enumerable languages semi decideable (like halting problem) ?

please give examples if possible I’ve spent hours trying to wrap around these concepts and it just doesn’t feel right.