diff options
-rw-r--r-- | buffer.cpp | 11 | ||||
-rw-r--r-- | config.cpp | 3 |
2 files changed, 11 insertions, 3 deletions
@@ -86,7 +86,14 @@ vector<Buffer::ScreenLine> Buffer::layoutLine(const string &line,i64 linenum,i64 i64 linepart=0,fromx=0; for(i64 i=0;i<(i64)line.size();i++){ char c=line[i]; - string repr=showChar(c); + string repr; + bool special=false; + if(c=='\t'){ + repr=string(4-cur.size()%4,' '); + } else { + repr=showChar(c); + special=repr.size()>1; + } assert(repr.size()>0); if(x+(i64)repr.size()>=width){ layout.push_back({linenum,linepart,fromx,move(cur)}); @@ -95,7 +102,7 @@ vector<Buffer::ScreenLine> Buffer::layoutLine(const string &line,i64 linenum,i64 fromx=i; x=0; } - Cell cell={'\0',repr.size()!=1,i}; + Cell cell={'\0',special,i}; for(char rc : repr){ cell.c=rc; cur.push_back(cell); @@ -8,9 +8,10 @@ using namespace std; Keybindings global_keybindings={ {KEY_CTRL+'Q',{"quit_app"}}, - {'\n',{"insert_newline"}}, {KEY_BACKSPACE,{"delete_backward"}}, {KEY_DELETE,{"delete_forward"}}, + {'\n',{"insert_newline"}}, + {'\t',{"insert_char","\t"}}, }; class Init{public: Init(){ |