As for coloring support, I think the best way would be to implement LS_COLORS / dircolors. My GNU ls looks nice.