Comments (9)
@milouse Salut Milouse,
je vais regarder ce bug.
Je précise en revanche que web-mode est un mode prévu avant tout pour l'édition de tempates. Un bloc de code dans un template est généralement assez simple. Places tu des déclarations de fonctions (cf. plus haut) dans des templates ?
Pour ma part, j'utilise moi même php-mode.el lorsqu'il s'agit d'éditer des scripts qui ne contiennent que du php.
from web-mode.
Salut,
Je n'utilise pas à proprement parler de templates. Je pensais que web-mode m'aiderait à résoudre l'équation impossible de l'édition de fichier mélangeant html/css/javascript/php. Je sais ce n'est pas optimal mais lors de phase de prototypage rapide, c'est plutôt pratique. Néanmoins, même dans ce cas, j'évite les mélanges trop éxotiques et me contente de l'organisation suivante :
<?php
tout mon code php (dont effectivement éventuellement des déclarations,
mais dans le cas de mélange, c'est rare
?>
<html>
Le HTML vient ensuite et le PHP se résume ici au grand maximum à des
echo éventuellement imbriqués dans des foreach.
</html>
Cependant, le problème se pose pour moi même dans des fichiers ne contenant que du PHP ou que du html/javascript. C'est pour cela que je soupçonne que le problème vienne d'une incompatibilité entre web-mode et les déclarations de style générale que j'effectue dans mon init.el.
Je vais essayer de faire un test à vide (init quasi vide) pour voir si je trouve l'origine.
from web-mode.
@milouse should be solved with last commit
from web-mode.
C'est quasiment bon pour tout. Il me reste un petit manque : lorsque j'enchaîne de longue concaténations, celles-ci ne s'indente pas comme je le souhaiterait. J'aimerais obtenir ceci :
$test = 'titi' . $truc
. ' chose';
Mais pour l'instant la deuxième ligne ne s'indente pas et reste alignée sur la première ligne :
$test = 'titi' . $truc
. ' chose';
from web-mode.
@milouse ça devrait être ok avec le dernier commit
from web-mode.
Je ne comprends pas très bien comment fonctionne les règles d'indentation, du coup je ne sais pas jusqu'à quel point ce n'est pas plutôt les réglages évoqué dans mon premier message qui peuvent interférer, mais il me reste deux souci :
Le premier avec les switch : si jeu veux quelque chose comme ça :
switch($toto){
case 'truc':
code code code
break;
case 'chose':
code code code
break;
default:
}
Pour l'instant les blocs de code au sein des case restent alignés au case (pas d'indentation supplémentaire) :
switch($toto){
case 'truc':
code code code
break;
case 'chose':
code code code
break;
default:
}
L'autre souci provient des concaténations comme dans mon précédent message, ou si je veux :
$test = 'titi' . $truc
. ' chose';
J'obtiens
$test = 'titi' . $truc
. ' chose';
C'est à dire qu'au lieu d'être indentées avec un cran d'indentation supplémentaire, les lignes suivantes sont alignées sur le =.
Maintenant je me rends bien compte que je demande des réglages hyper fins et personnels. Si le but de web mode est de rester générique je le comprend tout à fait, aussi n'hésitez pas à clôturer l'issue si j'en demande trop.
Merci beaucoup
from web-mode.
@milouse Les modes d'édition de code utilisent souvent les fonctions d'indentation proposées par cc-mode (http://www.gnu.org/software/emacs/manual/html_mono/ccmode.html).
web-mode devant être compatible avec pas mal de langages différents (php, js, css, java, etc.) j'ai pris le parti d'écrire ma propre fonction (basique) d'indentation. Ceci explique que le comportement soit différent d'autres modes. Concernant tes demandes, le décalage sous le "case" sera peut être géré mais pas dans un futur proche (vraiment pas évident à gérer dans l'état actuel du code). Et pour la concaténation des chaines, le fonctionnement est volontaire ... je préfère que l'alignement se fasse sur les guillemets.
from web-mode.
@milouse j'ai finalement regardé la gestion du switch ... case et cela devrait désormais fonctionner.
from web-mode.
Ok merci pour tout alors.
from web-mode.
Related Issues (20)
- Javascript code get wrong indentation within django block HOT 1
- don't close element on `>` when element is already closed HOT 2
- Automatic insersion of quotes in attribute in JSX HOT 2
- Only '' commenting supported in asp code HOT 2
- The column highlight has been invalid since 17.3.13
- Error in post-command-hook (web-mode-on-post-command): (void-function count-invisible-character-ranges) HOT 3
- No highlighting in .blade.php file using engine blade HOT 2
- A problem with electric-pair-mode HOT 3
- Not included in Emacs by default HOT 1
- Doesn't handle PHP in blade templates HOT 1
- HTML attributes misaligned on different lines HOT 3
- JavaScript file variation HOT 3
- Need to constantly use `web-mode-dom-normalize` HOT 5
- Is there a variable to set the color of left fringe HOT 3
- Incorrect indentation in blade templates HOT 4
- use of save-mark-and-excursion requires more recent version of emacs than declared HOT 1
- After latest changes cannot apply web-mode HOT 11
- You can't use atomic group in PHP regex HOT 1
- Underlines break Ruby code indentation for parenthesis-less method calls HOT 1
- Keybinding for django template comment HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from web-mode.