Правила оформления кода

Events from the world of KolibriOS and its developers
  • Nable, это, во-первых, некорректная замена, а во-вторых, даже не пытается учесть правила помимо табуляции.
    turbanoff, я конвертировала наколеночным скриптом

    Code: Select all

    #!/bin/bash
    FILE=$1
    expand -t8 $FILE | perl -lne 'if(!$z&&m/^(\s*[^;"\x27\$][^;"\x27\s]*:)(\s*)([^;\s].*)$/){print "$1\r\n"," " x (length($1)+length($2)),$3}else{print}$z=(m/\\\s*(;.*)?$/)' > $FILE.1
    perl -n /home/users/clevermouse/beautifyer/beautifyer.pl $FILE.1 > $FILE
    rm $FILE.1
    
    expand раскрывает табуляцию, следующий регэксп выделяет метки и печатает их на отдельной строке, отступы настраивает приложенный скрипт
    Downloaded 974 times
    Для массового исправления, соответственно, из командной строки

    Code: Select all

    for a in `find -iname '*.asm' -o -iname '*.inc'`;do ./beautifyer.sh $a;done
    Сделаем мир лучше!
  • Вопрос: распространяются ли правила форматирования кода на драйвера?
  • тут не так давно писали что ты на svn не сможешь затолкнуть ничего текстового, содержащего \t, так что похоже что распространяются.
  • Asper wrote:Вопрос: распространяются ли правила форматирования кода на драйвера?
    А почитать тему?
    CleverMouse wrote:Ещё раз: на репозиторий вне kernel/trunk правила не распространяются.
    Соответственно, если исходники лежат не в /kernel/trunk/drivers (а, скажем, в /drivers), то правила форматирования на них *не распространяются*. С другой стороны, я бы заметил, что это не значит, что их *не стоит* там применять.
    in code we trust
  • mike.dld wrote: С другой стороны, я бы заметил, что это не значит, что их *не стоит* там применять.
    Спасибо, но лучше не надо. Особенно к портированным.
  • Про применение правил к C/C++ коду никто никогда ничего не говорил, а портированного ASM кода я как-то не помню, по крайней мере в сфере драйверов. Так в чём проблема? И я вообще-то имел в виду (вероятно, не совсем корректно выразился) самостоятельное соблюдение правил, без принуждения. Ну да ладно... Может быть, когда-нибудь, кто-нибудь поймёт...
    Last edited by mike.dld on Mon Dec 12, 2011 12:59 pm, edited 1 time in total.
    in code we trust
  • Из заглавного сообщения темы:
    CleverMouse wrote:svn-сервер будет просто отклонять коммиты, выполнение которых означало бы появление в kernel/trunk файлов *.asm или *.inc, нарушающих оформление
    Сделаем мир лучше!
  • Ok, спасибо.
    mike.dld wrote:Может быть, когда-нибудь, кто-нибудь поймёт...
    Я понял и ничего против заявленных правил форматирования не имею, хотя бы потому что эти правила по большей части соответствуют моему собственному стилю.
    Вопрос я задал, поскольку собираюсь в ближайшем будущем залить код HDA драйвера на SVN.
    Кстати код драйвера HDA находится в нескольких файлах, может создать для него отдельную папку на в /kernel/trunk/drivers или заливать всё в кучу?
  • Asper, лучше создать отдельную папку.
    Сделаем мир лучше!
  • Code: Select all

    ; init selectors
            mov     ebx, [BOOT_VAR+0x9040]          ; offset of APM entry point
            movzx   eax, word [BOOT_VAR+0x9050]; real-mode segment base address of
                                                                                    ; protected-mode 32-bit code segment
            movzx   ecx, word [BOOT_VAR+0x9052]; real-mode segment base address of
                                                                                    ; protected-mode 16-bit code segment
            movzx   edx, word [BOOT_VAR+0x9054]; real-mode segment base address of
                                                                                    ; protected-mode 16-bit data segment
    Наша новая система с поликерамидами - ваши волосы всегда великолепны! :lol:
  • Глюки старой версии

    Code: Select all

    ; init selectors
        mov ebx,[BOOT_VAR+0x9040]			; offset of APM entry point
        movzx eax,word [BOOT_VAR+0x9050] 	; real-mode segment base address of
    										; protected-mode 32-bit code segment
        movzx ecx,word [BOOT_VAR+0x9052] 	; real-mode segment base address of
    										; protected-mode 16-bit code segment
        movzx edx,word [BOOT_VAR+0x9054] 	; real-mode segment base address of
    										; protected-mode 16-bit data segment
    
    Spoiler:
    kernel_asm_2000.png
    kernel_asm_2000.png (5.79 KiB)
    Viewed 17133 times
    сохранены для совместимости.
    Сделаем мир лучше!
  • Вообще то раз уж сказано А, то должно быть сказано Б. Почему в одних случаях можно, а в других нельзя? Надо весь код к 80 символьной границе приводить. Это же не Си какой-нибудь, чтобы рассусоливать.
  • Раньше это было актуально. Но сейчас, имхо, ни к чему ограничивать длину строки до 80. Если уж ограничивать, то 100-120
  • Меню больше волнует жуткая предвзятость к табам. Глупо ограничивать удобство использования.
  • Who is online

    Users browsing this forum: No registered users and 6 guests