auto indent and smart indent