2017-01-19 13 views
6

मैं एक सी 99 प्रोग्राम लिख रहा हूं और अक्सर यौगिक अक्षर का उपयोग कर रहा हूं। हालांकि, Emacs उन्हें ठीक से इंडेंट नहीं लग रहा है।मैं Emacs को C99 यौगिक अक्षर को सही ढंग से इंडेंट कैसे कर सकता हूं?

उदाहरण के लिए, यहाँ एक सरल समारोह, हाथ से इंडेंट है:

SDL_Point 
random_point_within_rect(SDL_Rect r) 
{ 
    return (SDL_Point) { 
     .x = (r.x + (rand() % r.w)), 
      .y = (r.y + (rand() % r.h)), 
      }; 
} 

मेरे परिकल्पना है कि Emacs को नहीं पहचानता है:

SDL_Point 
random_point_within_rect(SDL_Rect r) 
{ 
    return (SDL_Point) { 
     .x = (r.x + (rand() % r.w)), 
     .y = (r.y + (rand() % r.h)), 
    }; 
} 

और यहाँ कैसे कि जब मैं M-x indent-region का उपयोग लग रहा है (type) { ... } में ब्रेसिज़ type x = { ... } में समान प्रकार की चीज के रूप में, क्योंकि यह ब्रेसिज़ में बिल्कुल वही सामग्री है, ठीक काम करता है:

SDL_Point 
random_point_within_rect(SDL_Rect r) 
{ 
    SDL_Point p = { 
     .x = (r.x + (rand() % r.w)), 
     .y = (r.y + (rand() % r.h)), 
    }; 
    return p; 
} 

क्या कोई तरीका है कि मैं इमाक्स को संरचना शाब्दिक जैसे कंपाउंड अक्षरों या यहां इंडेंटेशन को ठीक करने के किसी अन्य तरीके से इलाज करने के लिए प्राप्त कर सकता हूं?

धन्यवाद।

+1

लग रहा है अपने परिकल्पना की तरह सही है, अगर आप eval '(setq-स्थानीय सी गूंज वाक्यात्मक-सूचना पी टी)' आप खरोज नियम देख सकते हैं – jenesaisquoi

उत्तर

0

मैंने उस सटीक समस्या के लिए एक बग रिपोर्ट दायर की; मेरा मानना ​​है कि Emacs आपकी सूची का विवरण बयानों की एक श्रृंखला के रूप में कर रहा है, और कॉमा ऑपरेटरों के रूप में अल्पविराम।

आप डालकर समस्या को बाधित कर सकते हैं; आपकी लाइनों के अंत में। तुम भी अनाम struct initializers का उपयोग कर सकते हैं, जैसे कि

return (SDL_Point){r.x + rand()%r.w, r.y + rand()%r.h} 
संबंधित मुद्दे

 संबंधित मुद्दे