mirror of
				https://github.com/go-delve/delve.git
				synced 2025-10-31 02:36:18 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			32 lines
		
	
	
		
			634 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			634 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package terminal
 | |
| 
 | |
| import (
 | |
| 	"os"
 | |
| 	"strings"
 | |
| 	"syscall"
 | |
| )
 | |
| 
 | |
| // supportsEscapeCodes returns true if console handles escape codes.
 | |
| func supportsEscapeCodes() bool {
 | |
| 	if strings.ToLower(os.Getenv("TERM")) == "dumb" {
 | |
| 		return false
 | |
| 	}
 | |
| 	if strings.ToLower(os.Getenv("ConEmuANSI")) == "on" {
 | |
| 		// The ConEmu terminal is installed. Use it.
 | |
| 		return true
 | |
| 	}
 | |
| 
 | |
| 	const ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004
 | |
| 
 | |
| 	h, err := syscall.GetStdHandle(syscall.STD_OUTPUT_HANDLE)
 | |
| 	if err != nil {
 | |
| 		return false
 | |
| 	}
 | |
| 	var m uint32
 | |
| 	err = syscall.GetConsoleMode(h, &m)
 | |
| 	if err != nil {
 | |
| 		return false
 | |
| 	}
 | |
| 	return m&ENABLE_VIRTUAL_TERMINAL_PROCESSING != 0
 | |
| }
 | 
